跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 注解的方式生成 swagger 文档太麻烦,有没有 Go 模块类似 Python FastAPI 的自动生成文档的机制?
未分類
27 11 月 2020

注解的方式生成 swagger 文档太麻烦,有没有 Go 模块类似 Python FastAPI 的自动生成文档的机制?

注解的方式生成 swagger 文档太麻烦,有没有 Go 模块类似 Python FastAPI 的自动生成文档的机制?

資深大佬 : DoctorCat 4

手写 MD 文档就不麻烦了,复制-粘贴改一改就好,效率飞起
大佬有話說 (41)

  • 資深大佬 : xuanbg

    用 c# 或者 spring 多好,django 的 swagger 都不是很方便,因为这个原因弃用 go 做 web 服务

  • 資深大佬 : hjahgdthab750

    同求,有类似机制的,主记得艾特我。

  • 資深大佬 : charmToby

    换种思路,文档->代码

  • 資深大佬 : lingxi27

    @lingxi27
    @xuanbg

    要的就是 swagger 在线发请求的测试功能,回到原始 doc 上那当然就不会有这个问题了…建议我手写 doc 仿佛在跟我说蒸汽机不好搞,还是继续坐马车吧

  • 主 資深大佬 : DoctorCat

    @hjahgdthab750 Python 的话 FastAPI 可以自动生成,不需要人肉介入。

  • 主 資深大佬 : DoctorCat

    @DoctorCat #6 fastapi 不能像 flask django 那样直接用 py 文件启动吧,好像要在系统上装什么来着

  • 資深大佬 : hjahgdthab750

    @hjahgdthab750 #7 没有超级用户权限,我选择绕开 fastapi,本来还是挺不错的项目

  • 資深大佬 : hjahgdthab750

    Ruby 的 grape 配合 swagger 异常好用,全自动生成,连注释都不写

  • 資深大佬 : TangMonk

    如果是 api 的建议先使用 protobuf 等 idl 描述,再动生成文档和代码。

    我们也是苦文档不更新久矣。最后搞了个[sniper 框架]( https://github.com/bilibili/sniper),具体的设计思路可以参考[这篇文章]( https://zhuanlan.zhihu.com/p/69029677)。在生产环境跑了两年多了,效果还不错。

  • 資深大佬 : haitaotao

    @hjahgdthab750 FastAPI 只需要安装 uvicorn 就可以直接 py 文件启动了。

  • 資深大佬 : charmToby

    https://github.com/gogf/swagger
    我用了
    https://goframe.org/index

  • 資深大佬 : wzw

    @charmToby #11 对对,线上没有 uvicorn,也没有安装的权限

  • 資深大佬 : hjahgdthab750

    有几年没用 go 了,看到这个话题,回顾一下在 go 项目中使用 swagger 历程。
    注:我也一直讨厌写不必要的 API 文档,尤其是 API 输入、输出格式等本应该能自动生成的文档。

    1. 最初是自己写的代码,根据 request, response 对象生成 swagger.json 文件( python 也自己写过……):
    https://www.v2ex.com/t/390148?p=1#r_4746014
    2. 后来某个项目使用过 https://github.com/MarkSonghurst/swag (印象中某些 feature 支持不够好,我还改过少量代码)
    3. 另外看到其他 v 友选择过 https://github.com/Tencent/APIJSON,也许以后会尝试?
    https://v2ex.com/t/556593?p=2#r_7208890

  • 資深大佬 : siteshen

    学习下标准库里 go/ast go/types 几个包,自己写一个就行,一两百行完事的程序,自己需要什么就写什么,何必到处找,你找到也未必合用。

  • 資深大佬 : reus

    smartdoc?

  • 資深大佬 : herofire

    用 protobuf 描述借口,protoc swagger 插件自动生成

  • 資深大佬 : Biebe

    protobuf

  • 資深大佬 : tiedan

    @DoctorCat

    你可能没完全明白我的意思,要不看看这个能不能帮到你

  • 資深大佬 : lingxi27

    @DoctorCat

    https://github.com/go-swagger/go-swagger

  • 資深大佬 : lingxi27

    考虑下 c#,直接把代码注释生成 swagger

  • 資深大佬 : Rwing

    http://github.com/swaggo/swag

  • 資深大佬 : janxin

    先写文档,再开发,就不慢了

  • 資深大佬 : zqx

    @lingxi27 我们理解的“自动”这项能力,不是同一种,我要的是不需要写代码注释的生成框架。

    @reus 你的提议很好,不过我就是想先看看有没有可以百白嫖的代码

  • 主 資深大佬 : DoctorCat

    用 javaparser 静态分析代码,自动生成 Swagger 注解,我这么写过,不过只是生成了简单一点的,因为有些字段和方法是没有注释的

  • 資深大佬 : yuan434356430

    因为 swagger 的注解内容都是可以从已有的代码里读取到的

  • 資深大佬 : yuan434356430

    @siteshen 不太喜欢 APIJSON 接管 ORM

  • 主 資深大佬 : DoctorCat

    @DoctorCat 我用 go 写 API,没用过 framework,都是用的 library,自己手写 model + generate 通用的 model 级别的 API 。
    听你这么说 APIJSON 还会接管 ORM,应该是 framework 了。

  • 資深大佬 : siteshen

    用 go 我还是建议手写 markdown….

  • 資深大佬 : meshell

    推荐个 apifox 功能方面挺好的,mock swagger,压测 都有,但是貌似有 cpu 占用的问题,如果有安全要求的话就别用了

  • 資深大佬 : sprite82

    @siteshen APIJSON ? 可能我不太熟这个操作。

  • 主 資深大佬 : DoctorCat

    smart-doc 可以根据源码注释生成文档。

  • 資深大佬 : jiyingze

    @jiyingze 你确定说的是支持 Go 语言的产物?

  • 主 資深大佬 : DoctorCat

    我也是用 golang 自带 ast 针对性写的

  • 資深大佬 : saberlong

    @charmToby

    https://github.com/tal-tech/go-zero

  • 資深大佬 : lidashuang

    @charmToby Graphql 也可以考虑

  • 資深大佬 : lidashuang

    @meshell 手写 你不累吗

  • 資深大佬 : lidashuang

    @lidashuang 还好呀。说实话,go 里面写注释,然后生成还没有手写 markdown 复制粘贴快.

  • 資深大佬 : meshell

    python 不写 docstr 能自动生成文档?开玩笑

  • 資深大佬 : TransAM

    go 自带 ast 包, 随便怎么玩代码生成啊.

  • 資深大佬 : joesonw

    @meshell 一个很重要的点是 代码和文档同步,fastapi 就做的很好

  • 資深大佬 : lidashuang

    @TransAM 注意审题,FastAPI 自动生成 swager 了解一下?

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具