位置 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,谢谢!
|  |      1zoharSoul      2021-01-12 23:06:48 +08:00 感觉挺有意思的 | 
|  |      2wellsc      2021-01-12 23:28:43 +08:00 👍 | 
|  |      5kidlj      2021-01-13 00:00:34 +08:00 via iPhone Go 支持装饰器就好了,不过我觉得希望不大😂 | 
|  |      6gowk      2021-01-13 09:09:54 +08:00 妈耶,这波操作太骚了 | 
|  |      7ansi395958      2021-01-13 09:23:34 +08:00 👍 之前也做过一个基于注解生成 API 文档的,https://github.com/thewinds/mkdoc | 
|  |      8TypeErrorNone      2021-01-13 11:16:41 +08:00 没啥用 |