写 go 项目时 swaggo 生成 swagger 文档的问题

4 天前
 broli7753

例如

问题

这个路由路径有办法自动提取过来么。
因为我在 net/http 定义路由时已经写过一遍路径,完了还要在处理方法的地方再写一次

863 次点击
所在节点    Go 编程语言
12 条回复
wangritian
4 天前
印象中没办法
写一个外部小工具扫描文件+正则匹配+插入或修改 @Route 就好,怕改出问题就做个备份
StoneHuLu
4 天前
fork 一下 swaggo ,找到这地方的源码自己改一下实现呗,运行 swaggo 的时候,直接扫你项目文件,把代码文件内容解析一下
StoneHuLu
4 天前
@StoneHuLu #2 然后传 GitHub ,以后就用自己的特供版 swaggo
Ayanokouji
4 天前
这种写法的 swagger 没办法的,就是这么麻烦

可以看下 https://huma.rocks ,这个是用代码生成文档,类似的框架还有 fuego (支持 html tempalte )

还有一种思路是 基于 openapi 文档生成 go 代码 https://github.com/oapi-codegen/oapi-codegen
broli7753
4 天前
@wangritian @StoneHuLu 这种自己写匹配, 要动手能力比较强。

想求个 简单的,

顺便了解下,看看大家都用什么姿势 来解决文档问题。
wangritian
4 天前
@broli7753 这个不算难,尤其现在有大模型帮助
我是用 ts 写了一个代码生成工具,解析 swagger.json 文档,生成 go/java/ts 三种语言的定制 sdk
因为注释也搬运到 sdk 中所以不需要额外维护文档了,但你主楼那一步不可省
fzdwx
4 天前
以前写过一个 demo ,可以参考一下 https://github.com/fzdwx/swgin
broli7753
4 天前
@fzdwx 正在阅读大佬的代码。
@Ayanokouji huma 貌似对当前代码 改动比较大,oapi-codegen 这个工作量更大了
Ayanokouji
4 天前
@broli7753
> huma 貌似对当前代码 改动比较大
是的,除非项目初期就采用,后续不好改
oapi-codegen 也是没法修改,开发顺序都发生变化了
server
4 天前
虽然但是, 仍 pb 里吧
buffzty
4 天前
你这个需求要改 swaggo 源码, 在解析 route 包 ast 的时候保存函数名->route 信息映射,在解析到 api 函数加上去就行
我以前就这么做的,我现在是在 postman 里写接口用 postman 当文档
smartdoc647
1 天前
我现在也主要写 go , 这种路由,go 也没有注解,搞文档生成就是比较烦, 注释也要写一大坨。我以前搞 java 开发开源的 smart-doc 在 spring 这种技术栈上生成接口文档使用起来就很爽。

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

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

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

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

© 2021 V2EX