element-template/provider.go

43 lines
972 B
Go
Raw Permalink Normal View History

// 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()