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

2021-09-08 22:58:58 +08:00
 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")))
}

856 次点击
所在节点    问与答
2 条回复
jenlors
2021-09-09 17:56:38 +08:00
倒是整了个跟 FastAPI 一样的 Swagger 文档生成: https://github.com/long2ice/swagin
cyrivlclth
2021-09-10 15:59:29 +08:00
你是说代码生成器?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/800715

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX