coolair:
我看了下别人用 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")))
}
from V2EX-最新主题 https://ift.tt/3BTMeFC
- 本文固定链接: https://niul.net/40027.html
- 转载请注明: 分享菌 于 牛叻网(NiuL.Net) 发表