The Go Programming Language
› http://golang.org/
› Go Playground
Go Projects
› Revel Web Framework
broli7753

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

  •  
  •   broli7753 · Jan 3, 2025 · 3125 views
    This topic created in 669 days ago, the information mentioned may be changed or developed.

    例如

    问题

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

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

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

    想求个 简单的,

    顺便了解下,看看大家都用什么姿势 来解决文档问题。
    WaldenHorizon
    WaldenHorizon
    Jan 3, 2025
    6
    @broli7753 这个不算难,尤其现在有大模型帮助
    我是用 ts 写了一个代码生成工具,解析 swagger.json 文档,生成 go/java/ts 三种语言的定制 sdk
    因为注释也搬运到 sdk 中所以不需要额外维护文档了,但你主楼那一步不可省
    lllllliiii
    lllllliiii
    Jan 3, 2025
    7
    以前写过一个 demo ,可以参考一下 https://github.com/fzdwx/swgin
    broli7753
    broli7753
    OP
    Jan 3, 2025
    8
    @fzdwx 正在阅读大佬的代码。
    @Ayanokouji huma 貌似对当前代码 改动比较大,oapi-codegen 这个工作量更大了
    Ayanokouji
    Ayanokouji
    Jan 3, 2025
    9
    @broli7753
    > huma 貌似对当前代码 改动比较大
    是的,除非项目初期就采用,后续不好改
    oapi-codegen 也是没法修改,开发顺序都发生变化了
    server
    server
    Jan 3, 2025
    10
    虽然但是, 仍 pb 里吧
    buffzty
    buffzty
    Jan 3, 2025
    11
    你这个需求要改 swaggo 源码, 在解析 route 包 ast 的时候保存函数名->route 信息映射,在解析到 api 函数加上去就行
    我以前就这么做的,我现在是在 postman 里写接口用 postman 当文档
    smartdoc647
    smartdoc647
    Jan 6, 2025
    12
    我现在也主要写 go , 这种路由,go 也没有注解,搞文档生成就是比较烦, 注释也要写一大坨。我以前搞 java 开发开源的 smart-doc 在 spring 这种技术栈上生成接口文档使用起来就很爽。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   3221 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 04:26 · PVG 12:26 · LAX 20:26 · JFK 23:26
    ♥ Do have faith in what you're doing.