位置 github.com/1-st/gin-annotation 實現的效果像這樣:
/* Hello a simple controller
[
method:GET,
groups:/api,
path:/hello-world,
need:auth
]
*/
func HelloWorld(ctx *gin.Context) {
ctx.JSON( http.StatusOK, map[string]string{
"msg": "hello, world",
})
}
思路:讀取 Go 原始碼的 AST 檔案,然後生成一個 route.entry.go 路由檔案,像這樣:
import (
"gin-annotation/_example/simple/controller"
"gin-annotation/_example/simple/middleware"
"github.com/gin-gonic/gin"
)
func Route(e *gin.Engine) {
api := e.Group("/api", middleware.Log)
{
v1 := api.Group("/v1")
{
v1.GET("/hello-world", middleware.Auth, controller.HelloWorld)
}
}
}
如果覺得有用/有趣,請star,謝謝!
本作品採用《CC 協議》,轉載必須註明作者和本文連結