我看了下别人用 go 写的各种系统,都是 crud 四个方法都得写。
看 reddit,有个哥们的想法去实现了 DRF 的那套玩意:
func main() {
r := rest.New()
userViewSet := ViewSet { Type: reflect.TypeOf(&User{}) }
r.REST("/users", userViewSet)
}
func REST(path string, viewSet ViewSet) {
group := e.Group(path)
g.Use(rest.ViewSetMiddleware(viewSet))
g.GET("/", rest.listHandler)
g.GET("/:id", rest.GetHandler)
// and so on
}
func ViewSetMiddleware(viewSet ViewSet) {
return func(next echo.HandlerFunc) echo.HandlerFunc {
return func(c echo.Context) error {
//stuff the view set onto the context
}
}
}
func GetHandler(c echo.Context) error {
myStruct := reflect.New(c.GetViewContext().Type)
return c.JSON(db.First(&myStruct, c.Param("id")))
}
1
jenlors 2021-09-09 17:56:38 +08:00
倒是整了个跟 FastAPI 一样的 Swagger 文档生成: https://github.com/long2ice/swagin
|
2
cyrivlclth 2021-09-10 15:59:29 +08:00
你是说代码生成器?
|