V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
loyth06
V2EX  ›  程序员

咨询: Go 开发 api 管理工具

  •  
  •   loyth06 · 233 天前 · 2600 次点击
    这是一个创建于 233 天前的主题,其中的信息可能已经有所发展或是发生改变。

    大家好,我是一名 Go 后端开发程序员,最近想使用 Go 语言开发一款 api 管理软件(桌面,Web ),类似 Apifox ,Postman ,RapidAPI ,Insomnia...等等 api 管理工具

    为什么开发:

    1. 后端开发,方便管理开发的 api
    2. 空闲时间多,提升开发能力,积累技术栈
    3. 为后续项目"api 自动化"开发打基础

    想咨询一下各位技术同行们,你们平时工作过程中使用 api 管理工具频繁吗?开源的还是不开源的呢?

    第 1 条附言  ·  233 天前
    感谢各位的回复,这里做一下总结:
    1. 使用 Protobuf ,swagger 之类的做定义接口导出
    2. 将导出的接口再导入 apifox ,postman 之类 api 工具管理
    19 条回复    2024-04-03 18:30:17 +08:00
    totoro52
        1
    totoro52  
       233 天前   ❤️ 1
    以前都是手写文档,后面实在累了, 用 swagger 生成 json 再导入到 apifox 里去管理维护,简单明了,而且 apifox 也支持定时导入。
    mohuani
        2
    mohuani  
       233 天前
    1 、一般都是前后端第一次对接的时候用下,然后就是出问题的时候,再看一下原来的 api 文档,看看是前端还是后端偷偷改代码了。
    2 、还有就是自己可能会写一些本地的 api 脚本,时间长了再用的时候,记不住参数了,再看一下文档,不过这些基本都用 postman 解决了
    smartdoc647
        3
    smartdoc647  
       233 天前
    go 语言做 web 开发,api 管理工具不是最重要的,生成 API 文档的过程很烦,go swagger 页要求程序员写一堆的注释。
    我自己是 java 文档生成工具 smart-doc 的作者。目前也只一个主力 go 语言的应用开发者。管理工具其实已经很多了,针对 go 语言文档生成端非常的弱
    totoro52
        4
    totoro52  
       233 天前
    @smartdoc647 是的 在方法上拉一坨的注释。。。
    tangtang369
        5
    tangtang369  
       233 天前
    swagger 不好用吗
    Rehtt
        6
    Rehtt  
       233 天前 via Android
    我这是用 protobuf 定义接口,生成 swagger 再导进 apifox
    StarUDream
        7
    StarUDream  
       233 天前   ❤️ 1
    我们也是用 Protobuf 定义接口,然后用 https://github.com/grpc-ecosystem/grpc-gateway 生成文档,相较于 Swaggo 写注释体感上好不少
    lolizeppelin
        8
    lolizeppelin  
       233 天前
    我感觉用 ast 解析注释, 配合反射读字段 tag 的形式生成 Swaggo 更灵活一点
    tangqiu0205
        9
    tangqiu0205  
       233 天前
    @Rehtt #6 同样
    luozic
        10
    luozic  
       233 天前
    基于 swagger 的 openapi 标准再搓呗,这个是现在的标准,都已经到 3.0 了 GitHub 上有协议
    veni2023
        11
    veni2023  
       233 天前
    apipost 不错,分享方便,权限可控,还有提取返回,自动填充其他 api 相同字段名说明这个方便的功能
    lrh3321
        12
    lrh3321  
       233 天前
    typespec 写,然后转成 openapi3 导入 Insomnia
    wujianhua22
        13
    wujianhua22  
       233 天前
    1 、go-swag 用着很不爽,我们都用 protobuf 生成接口文档。然后在程序里面加一个 swagger 的 UI ,静态部署就可以了。
    2 、另外不建议做 API 管理软件。现在的 API 管理软件已经饱和了,除非你能解决痛点或者又更好的管理方案,比如实现更高级的 API 版本管理等。
    3 、也可以做做类似 Apifox Helper 这种工具,java 可以通过注解识别程序代码里面的 handler/controller 去自动解析代码然后生成导出文件,go 这边我还不知道怎么实现,这种应该有一定的技术提升。
    cyrivlclth
        14
    cyrivlclth  
       233 天前
    @totoro52 #4 瘪说了,java 那边 swagger 有注解,有些人还嫌弃,吹什么代码侵入性,非要在方法上拉一坨注释
    layxy
        15
    layxy  
       232 天前
    @lolizeppelin 问题 go 不像 java 有框架和约束写法,go 的 web 框架基本没啥约束,参数绑定这块灵活性很高,很难识别和生成文档
    Desdemor
        16
    Desdemor  
       232 天前
    1 普通版本:swag 生成,导入到 apifox
    2 框架自带:goframe 里面带了个注入的好像,没细看
    lolizeppelin
        17
    lolizeppelin  
       232 天前
    @layxy
    其实可以,解析服务组件的时候,限定函数参数个数,类型返回值与个数就行
    微服务框架的基本做法
    ben666
        18
    ben666  
       232 天前
    go api 网关 bfe 了解下
    bugcreator
        19
    bugcreator  
       232 天前 via iPhone
    我们之前 Java 用的 yapi ,不知道是否有 go 版本,不过应该可以作为参考。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1023 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 19:46 · PVG 03:46 · LAX 11:46 · JFK 14:46
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.