V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
broli7753
V2EX  ›  Go 编程语言

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

  •  
  •   broli7753 · 2 天前 · 809 次点击

    例如

    问题

    这个路由路径有办法自动提取过来么。
    因为我在 net/http 定义路由时已经写过一遍路径,完了还要在处理方法的地方再写一次
    
    
    11 条回复    2025-01-03 21:24:59 +08:00
    wangritian
        1
    wangritian  
       2 天前
    印象中没办法
    写一个外部小工具扫描文件+正则匹配+插入或修改 @Route 就好,怕改出问题就做个备份
    StoneHuLu
        2
    StoneHuLu  
       2 天前
    fork 一下 swaggo ,找到这地方的源码自己改一下实现呗,运行 swaggo 的时候,直接扫你项目文件,把代码文件内容解析一下
    StoneHuLu
        3
    StoneHuLu  
       2 天前
    @StoneHuLu #2 然后传 GitHub ,以后就用自己的特供版 swaggo
    Ayanokouji
        4
    Ayanokouji  
       2 天前
    这种写法的 swagger 没办法的,就是这么麻烦

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

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

    想求个 简单的,

    顺便了解下,看看大家都用什么姿势 来解决文档问题。
    wangritian
        6
    wangritian  
       2 天前
    @broli7753 这个不算难,尤其现在有大模型帮助
    我是用 ts 写了一个代码生成工具,解析 swagger.json 文档,生成 go/java/ts 三种语言的定制 sdk
    因为注释也搬运到 sdk 中所以不需要额外维护文档了,但你主楼那一步不可省
    fzdwx
        7
    fzdwx  
       2 天前
    以前写过一个 demo ,可以参考一下 https://github.com/fzdwx/swgin
    broli7753
        8
    broli7753  
    OP
       2 天前
    @fzdwx 正在阅读大佬的代码。
    @Ayanokouji huma 貌似对当前代码 改动比较大,oapi-codegen 这个工作量更大了
    Ayanokouji
        9
    Ayanokouji  
       2 天前
    @broli7753
    > huma 貌似对当前代码 改动比较大
    是的,除非项目初期就采用,后续不好改
    oapi-codegen 也是没法修改,开发顺序都发生变化了
    server
        10
    server  
       2 天前
    虽然但是, 仍 pb 里吧
    buffzty
        11
    buffzty  
       2 天前
    你这个需求要改 swaggo 源码, 在解析 route 包 ast 的时候保存函数名->route 信息映射,在解析到 api 函数加上去就行
    我以前就这么做的,我现在是在 postman 里写接口用 postman 当文档
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5655 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 06:00 · PVG 14:00 · LAX 22:00 · JFK 01:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.