首页 > V2EX > V2EX-Go 有类似 Django 的 DRF, FastAPI 的 fastapi-crudrouter 之类的东西吗?
2021
09-08

V2EX-Go 有类似 Django 的 DRF, FastAPI 的 fastapi-crudrouter 之类的东西吗?

coolair:

DRF

fastapi-crudrouter

我看了下别人用 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

最后编辑:
作者:分享菌
这个作者貌似有点懒,什么都没有留下。

留下一个回复