Replace Cobra CLI + raw net/http with core/go-api Engine. DemoProvider implements RouteGroup for plug-and-play registration. Lit element updated to fetch from Go API. Add .core/build.yaml and CLAUDE.md. Co-Authored-By: Virgil <virgil@lethean.io>
42 lines
972 B
Go
42 lines
972 B
Go
// SPDX-License-Identifier: EUPL-1.2
|
|
|
|
package main
|
|
|
|
import (
|
|
"net/http"
|
|
"time"
|
|
|
|
"github.com/gin-gonic/gin"
|
|
)
|
|
|
|
// DemoProvider is an example service provider that exposes a REST API.
|
|
// Replace this with your own provider implementation.
|
|
type DemoProvider struct{}
|
|
|
|
// Name implements api.RouteGroup.
|
|
func (p *DemoProvider) Name() string { return "demo" }
|
|
|
|
// BasePath implements api.RouteGroup.
|
|
func (p *DemoProvider) BasePath() string { return "/api/v1/demo" }
|
|
|
|
// RegisterRoutes implements api.RouteGroup.
|
|
func (p *DemoProvider) RegisterRoutes(rg *gin.RouterGroup) {
|
|
rg.GET("/hello", p.hello)
|
|
rg.GET("/status", p.status)
|
|
}
|
|
|
|
func (p *DemoProvider) hello(c *gin.Context) {
|
|
name := c.DefaultQuery("name", "World")
|
|
c.JSON(http.StatusOK, gin.H{
|
|
"message": "Hello, " + name + "!",
|
|
})
|
|
}
|
|
|
|
func (p *DemoProvider) status(c *gin.Context) {
|
|
c.JSON(http.StatusOK, gin.H{
|
|
"status": "running",
|
|
"uptime": time.Since(startTime).String(),
|
|
})
|
|
}
|
|
|
|
var startTime = time.Now()
|