V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
rookie2luochao
V2EX  ›  程序员

swagger-ui, redoc 好像都快弃坑了, rapi 作者似乎却干劲十足, openapi-ui 作者躺平式更新,大家现在都在用什么 api 文档软件,经济下行,开源弃坑的好像越来越多?

  •  
  •   rookie2luochao ·
    rookie-luochao · 70 天前 · 6141 次点击
    这是一个创建于 70 天前的主题,其中的信息可能已经有所发展或是发生改变。

    这里主要是说一些开源免费的 openapi 规范 UI 文档, 那些一上来就无脑各种喷的还请嘴上留情,好歹也算为爱发电,大家都不容易,找点杂事干着也是挺好的

    不得不说 apifox 确实是个好东西,目前来看也没咋收费,可是它好像只对 java kotlin 友好,而且我总感觉它好卡,它很多强大的功能我都没有使用过,关键是它为啥必须手动导出 openapi.json 啊,这让想直接根据配置生成 ts http 客户端的前端小伙伴非常蛋疼

    目前来看这 4 个包的更新情况:

    swagger-ui:功能完善,没咋更新了,就是 UI 体验很差
    redoc: 没咋更新了,它竟然不支持测试接口,有点费解
    rapi: 作者重新回归,更新活跃,总感觉它的代码阅读起来费劲,不知道是不是我太菜了
    openapi-ui: UI 使用良好,使用的最新技术栈构建,代码可读性可维护性高,作者一直在躺平式更新,因为用户太少,没人提 bug😂

    90 条回复    2024-10-14 15:13:34 +08:00
    xFrye
        1
    xFrye  
       70 天前
    跟经济下行无关,行情好的时候也有不少这样的弃坑项目。多半是作者心思已经不在这项目上了吧
    rookie2luochao
        2
    rookie2luochao  
    OP
       70 天前
    @xFrye 可是并没有新的接口规范出来,我看作者们 github 好像都没啥更新动态了
    raphaelsoul
        3
    raphaelsoul  
       70 天前
    swagger 看上去很美好 但是已经复杂到我不想用的程度了 各类语言框架的支持也不完善
    concernedz
        4
    concernedz  
       70 天前
    还在用着 yapi ,蛮多 bug 的,但找不到替代品
    joyhub2140
        5
    joyhub2140  
       70 天前
    用 springdoc 吧,虽然仅仅套个 swagger-ui ,但内部实现还是紧跟 springboot 的节奏的。
    rookie2luochao
        6
    rookie2luochao  
    OP
       70 天前
    @joyhub2140 我们 java 类项目用的 apifox+apifox idea ,对代码侵入还好,后端接受性还不错,不用写很多注解
    dingyaguang117
        7
    dingyaguang117  
       70 天前
    rookie2luochao
        8
    rookie2luochao  
    OP
       70 天前
    @concernedz yapi 不是很早就弃坑了吗,用这个的目前不多了
    rookie2luochao
        9
    rookie2luochao  
    OP
       70 天前
    @dingyaguang117 这个看着不像接口文档类解决方案啊
    rookie2luochao
        10
    rookie2luochao  
    OP
       70 天前
    @raphaelsoul 各类语言框架的支持,swagger 官方并没有做啊,都是社区做的
    sss15
        11
    sss15  
       70 天前
    现在用 apifox ,目前使用体感还好,没有用到付费的服务
    rookie2luochao
        12
    rookie2luochao  
    OP
       70 天前
    @sss15 后端是 java 的话,用这个玩意确实不错,免费的够用了,但是有一点也还没有找到解决办法,就是 apifox 自动同步 openapi.json
    securityCoding
        13
    securityCoding  
       70 天前
    最好的 api 文档莫过于 protobuf
    lizhien
        14
    lizhien  
       70 天前
    Scalar
    rookie2luochao
        15
    rookie2luochao  
    OP
       70 天前
    @lizhien 这玩意是往付费运营的
    wu67
        16
    wu67  
       70 天前   ❤️ 2
    个人觉得, 最好的 api 是特么的把后端的项目 git 权限给劳资打开,
    现代后端项目全特么有 mvc 分层了, 详细业务逻辑我看不懂而已, 控制器定义逻辑和参数表我看得懂呀...
    rookie2luochao
        17
    rookie2luochao  
    OP
       70 天前   ❤️ 1
    @wu67 后端说:谁特么跟我把数据库权限,sql 权限放开,老子改个表都不行吗?老子改个数据还得写 sql ,还得负责人审批,老子 xxxxxxx00000000
    rookie2luochao
        18
    rookie2luochao  
    OP
       70 天前
    @securityCoding 这是什么高级玩意,容我看看😊
    SouthRiverMatt
        19
    SouthRiverMatt  
       70 天前
    knife4j 很好用
    rookie2luochao
        20
    rookie2luochao  
    OP
       70 天前
    @SouthRiverMatt knife4j 应该赶不上 apifox, javaer 说用这个玩意还不错,比 swagger/openapi 舒服,它是自动解析代码的,精确的信息也需要像 swagger/openapi 一样加注解
    cccxu
        21
    cccxu  
       70 天前
    scalar ui
    rookie2luochao
        22
    rookie2luochao  
    OP
       70 天前
    @cccxu 这东西确实做的挺好,但是和 apifox 一样感觉不够简洁,而且他的目标是付费用户
    rookie2luochao
        23
    rookie2luochao  
    OP
       70 天前
    @cccxu 他们团队这么多人做这个 scalar 文档,经费遭得住吗,收费的文档平台其实应该挺难做的吧,完全不要 api 文档的也很多,而且还有 postman 这些巨头
    burymme11
        24
    burymme11  
       70 天前
    ApiFox ,有网页版,有客户端,有 IDEA 插件。全公司后端项目都在用,没啥毛病。
    rookie2luochao
        25
    rookie2luochao  
    OP
       70 天前
    @burymme11 我们公司也有部分项目在用,确实是不错的,关键是确实不收费,但是除开 java idea 插件,其他语言好像并不支持 idea 插件
    stiangao
        26
    stiangao  
       70 天前
    rookie2luochao
        27
    rookie2luochao  
    OP
       70 天前
    @stiangao 你不发不知道,原来文档类软件这么卷,简直是红海
    stiangao
        29
    stiangao  
       70 天前
    @rookie2luochao 本来想找一个 apifox 替代品,找出了好多项目,一个比一个🌟多
    lepig
        30
    lepig  
       70 天前
    apifox 确实挺好用,就是太 TM 卡了,16G 内存,开了七八个标签直接占了 1.7G 多。快赶上 ide 了。
    rookie2luochao
        31
    rookie2luochao  
    OP
       70 天前
    @stiangao apifox 不错啊,都用上 apifox 了,为什么要找替代品
    rookie2luochao
        32
    rookie2luochao  
    OP
       70 天前
    @lepig 这玩意我也感觉卡得很,功能太多了,但是很多都用不上,反正操作页面不简洁,而且巨卡
    fox2081
        33
    fox2081  
       70 天前
    @cccxu #21 试了下很好用,node 和 web 端都是导入 openapi 配置就能直接用,终于能替换掉 swagger-ui 了
    rookie2luochao
        34
    rookie2luochao  
    OP
       70 天前
    @fox2081 试了下什么很好用,swagger-ui 替换一下现代点的 UI ,其实也好用,轻量且不卡
    fox2081
        35
    fox2081  
       70 天前
    @rookie2luochao #34 就是 scalar ui 啊,确实比 swagger-ui 好看多了
    Hanser002
        36
    Hanser002  
       70 天前
    基于 swagger 生成好了类型就不看 swagger-ui 了,确实不好看也不是很好用,调试直接上 apifox 就行
    davin
        37
    davin  
       70 天前
    到最后,还是 postman 解君愁
    rookie2luochao
        38
    rookie2luochao  
    OP
       70 天前
    @fox2081 我看他们有挂收费标准,就没有对比它了,因为它算付费栏目
    rookie2luochao
        39
    rookie2luochao  
    OP
       70 天前
    @davin postman 确实牛逼啊,有很多人烦登录
    fantasy0v0
        40
    fantasy0v0  
       70 天前
    我现在的做法是先在 apifox 设计好,然后再让前后端根据这个文档实现。
    有点不太理解 swagger-ui ,用这个的话,一般是后端把注释和代码都写好了,然后再生成成文档给前端看吗?
    rookie2luochao
        41
    rookie2luochao  
    OP
       70 天前
    @fantasy0v0 对,一般是后端把代码写好了,然后用一个 swagger 规范的工具,解析后端代码,生成一份接口的 openapi.json 配置文件,然后 swagger-ui 就根据这个配置文件生成 api 文档,前端也可以根据这个配置文件生成调用接口的客户端函数,ts 定义等等内容
    rookie2luochao
        42
    rookie2luochao  
    OP
       70 天前
    @fantasy0v0 我写了一个 [openapi-ui]( https://github.com/rookie-luochao/openapi-ui) 用于展示 api 文档 <br>
    维护了一个供前端解析 swagger 配置文件生成前端代码的工具 [openapi-ts-request]( https://github.com/openapi-ui/openapi-ts-request)
    coolcoffee
        43
    coolcoffee  
       70 天前
    看到楼主的推荐,我先试试从 swagger-ui 换成 rapi 去。redoc 之前尝试使用过,开源的版本功能残废以及付费版本的体验也总是怪怪的。

    楼上推荐的什么 apifox 、insomnia 、postman 我觉得太重了用不上,写完接口自动生成接口文档并且网页上能调试才是最方便的,能够及时跟着服务端最新版本走。
    rookie2luochao
        44
    rookie2luochao  
    OP
       70 天前
    @Hanser002 swagger-ui 确实 UI 有点不太好用,但是如果后端如果集成一些现代的 swagger-ui 文档估计就好很多
    rookie2luochao
        45
    rookie2luochao  
    OP
       70 天前
    @coolcoffee 有没有一种可能可以试试楼主写的 openapi-ui https://github.com/rookie-luochao/openapi-ui ,你有 bug ,我立即响应🥹
    heganghua
        46
    heganghua  
       70 天前
    openapi.json 这是一个啥? 我都是写完接口后直接同步到 foxapi
    rookie2luochao
        47
    rookie2luochao  
    OP
       70 天前
    @heganghua swagger-ui 就是根据 openapi.json 渲染的文档,前端可以根据这个 openapi.json 和后端服务同步,省去写 ts, http 客户端,还有智能提示
    rookie2luochao
        48
    rookie2luochao  
    OP
       70 天前
    @heganghua apifox 没有对应的配置可以供前端使用,所以有点蛋疼,很影响使用体验
    rookie2luochao
        49
    rookie2luochao  
    OP
       70 天前
    @coolcoffee 不要 998 ,不要 98 ,楼主写的 openapi-ui 免费送你,哈哈哈
    coolcoffee
        50
    coolcoffee  
       70 天前
    @rookie2luochao 我重新对比了一下 openapi-ui 和 rapi 。我觉得 openapi-ui 还有一些没能满足我期待的地方😂

    像美观上来说,method 显示那么大有点亮瞎狗眼;另外我这边看接口的字段请求和返回格式很乱,没有 rapi 那样清晰明了。
    从功能角度来说,那个侧边栏折叠状态完全没法用就先不用放出来吧;接口组的折叠功能也还缺失会导致接口数量多了很难找。
    rookie2luochao
        51
    rookie2luochao  
    OP
       70 天前
    @coolcoffee 那把 method 调小一点吧,折叠那就砍掉吧,是不是随意了一点🥹
    支持很多搜索条件,随便搜一下关键词,应该都能搜到想要的接口
    接口返回 UI 展示可能有些人会喜欢,有些人会不喜欢,因为很多功能都是重新设计的
    接受意见改进,欢迎 issue 区提供一些改进意见
    rookie2luochao
        52
    rookie2luochao  
    OP
       70 天前
    @coolcoffee 我个人觉得 openapi-ui 整体还是要简洁一点?
    TGhoull
        53
    TGhoull  
       70 天前
    可以试试 Spring Restdocs ( https://spring.io/projects/spring-restdocs),上手略有门槛,切入点很新颖,优点是接口 mock 测试和接口文档相结合,可以根据接口 mock 测试代码,直接生成接口文档。
    rookie2luochao
        54
    rookie2luochao  
    OP
       70 天前
    @coolcoffee openapi-ui 最大的优势可能就是整体 UI 布局简洁,query 输入对复杂数据类型支持的比较好
    返回结构可能更迎合前端,因为接口测试很多时候都是丢给前端测的,前端太需要了解返回数据的层级了,当然最重要作者的使用风格影响了设计
    抛开这些,积极接受用户的功能反馈建议
    rookie2luochao
        55
    rookie2luochao  
    OP
       70 天前
    @TGhoull 这个怎么没听人使用过?
    BiChengfei
        56
    BiChengfei  
       70 天前
    swagger ,各种语言都有对 swagger 规范的实现,很多都是嵌入到项目中,实时生成。
    接口信息,本来就是一个轻量级,很成熟的东西,功能做完后,本来没必要更新了
    kalman03
        57
    kalman03  
       70 天前
    apideploy.com 我开发的,欢迎指导。
    kalman03
        58
    kalman03  
       70 天前
    rexcelia
        59
    rexcelia  
       70 天前
    Apifox 啊,好多公司在用,又免费
    rookie2luochao
        60
    rookie2luochao  
    OP
       70 天前
    @rexcelia apifox 对 java 的支持没得说,对 go, nodejs, python 的基本上没有支持,所以根据代码生成 api 文档的话,apifox 只对 java 友好
    rookie2luochao
        61
    rookie2luochao  
    OP
       70 天前
    @BiChengfei 用了很多年 swagger, 目前来说没有比它流行的接口规范定义了吧,就是 swagger-ui 设计一直没变过,不太好用,阅读和测试都不是很方便
    rookie2luochao
        62
    rookie2luochao  
    OP
       70 天前
    @kalman03 指导谈不上,我这就是个 UI ,你这是个对标 apifox 的接口管理平台,体量都不一致,我闲下来学习下
    maguowei
        63
    maguowei  
       70 天前
    scalar +1
    kalman03
        64
    kalman03  
       70 天前
    @rookie2luochao 如果你忽略根据代码生成 API 的部分,那么它也就是个 UI 。支持标准的 OpenAPI ( swagger )格式导入,导入后就是一个好看的 UI 接口文档。目前一直是免费的。
    unidotnet
        65
    unidotnet  
       70 天前
    这种自动化工具是给懒人用的,最主要的还是人工写好文档,看看那些大公司,Facebook ,Salesforce 之类的接口文档,都写的很详细。Postman collection 都是额外的一些 demo 。
    rookie2luochao
        66
    rookie2luochao  
    OP
       70 天前
    @unidotnet 可是中小公司里面没人愿意写文档,让你抓包的都有,临时甩给你个参数的也有😭😭😭
    rookie2luochao
        67
    rookie2luochao  
    OP
       70 天前
    @maguowei scalar 其实和我同一时期推出来的,有点尴尬,其实我在推出的 2 年前就写了这个工具的前身,只不过是给公司提供的一个 api 托管平台
    rookie2luochao
        68
    rookie2luochao  
    OP
       70 天前
    @maguowei scalar 永不收费的话,我也给它投一票
    rookie2luochao
        69
    rookie2luochao  
    OP
       70 天前
    @coolcoffee 大佬,rapidoc 在接口多了一点之后,和 swagger-ui 一样可阅读性很差啊,它是接口折叠性质的
    Akagi201
        70
    Akagi201  
       69 天前
    团队在用 apidog (apifox 国际版), 目前遇到问题有导入 openai.json 文件不能正确解析 schema. 其他还好, 也是用了很久, 几乎能满足我一切需求.
    jchnxu
        71
    jchnxu  
       69 天前
    @rookie2luochao #66 是的。。小公司哪里有大公司那么多资源
    cheng6563
        72
    cheng6563  
       69 天前
    @raphaelsoul #3 swagger 本身就没做语言框架集成,是要你手写 json 文档的...
    zbowen66
        73
    zbowen66  
       69 天前
    刚入行写的,虽然也没更新了,但对比官方 UI 还是有信心的 https://github.com/bowencool/swagger-ui
    rookie2luochao
        74
    rookie2luochao  
    OP
       69 天前
    @zbowen66 刚入行就能写这种东西,还是很优秀了,膜拜大佬😭
    rookie2luochao
        75
    rookie2luochao  
    OP
       69 天前
    @cheng6563 是的,swagger 只是一个规范,根据代码自动生成 json 文档需要对应语言的实现
    rookie2luochao
        76
    rookie2luochao  
    OP
       69 天前
    @jchnxu 小公司能将就用个文档软件就不错了,越要后端少写点就少写点,不然他不愿意干
    rookie2luochao
        77
    rookie2luochao  
    OP
       69 天前
    @Akagi201 apidog 也是 apifox 出品吗? apifox 优点很多,但是有 2 点让我也感觉很坑,一就是很容易卡,二就是推文档后想拿到接口的 openapi.json 很沙雕,无法自动同步
    zbowen66
        78
    zbowen66  
       69 天前
    @rookie2luochao #74 当时有大佬指导,可惜很快大佬就跑路了😅
    rockycc
        79
    rockycc  
       69 天前 via Android
    无脑 yapi 就行。yapi 本身是没有 bug 的,用了 5 年了,好用得不得了,直接替代 postman 进行接口运行和测试。官方 issue 那些都是别人提的需求,不打算实现而已。一个已经做得非常好软件依旧会有人去提 bug ,去提需求,实际体验是完全 okay 的。我的版本是 1.10.2 。
    rockycc
        80
    rockycc  
       69 天前 via Android
    api 文档管理用已有的 yapi 方案就行,就算有 bug ,也有先行者会替你去修。https://blog.opendeveloper.cn/yapi/bug
    rookie2luochao
        81
    rookie2luochao  
    OP
       68 天前
    @rockycc yapi 国产里面绝对算很牛逼的了,不知道为什么弃坑了?
    Akagi201
        82
    Akagi201  
       68 天前
    @rookie2luochao #77 目前看到 apidog 相比国内版, 有免费版的团队最多 4 人限制, 多了要付费.
    我目前还没用到导出功能. 主要设计跟测试上. 我是 mac m1max 没遇到卡过.
    rookie2luochao
        83
    rookie2luochao  
    OP
       68 天前
    @Akagi201 它们这种都是 api 托管吧,便于工作空间合作收费,不愿意花钱、追求隐私安全性的还是就 swagger
    shubuqi
        84
    shubuqi  
       68 天前 via Android
    推荐一个良心作品,完成度极高前后端都开源的工具
    官网: https://online.jobtool.cn/
    Github: https://github.com/trueleaf/moyu
    crackidz
        85
    crackidz  
       68 天前
    redoc 有付费版本的,弃坑可能性不大。当然,功能肯定不及付费版本就是了
    swagger-ui 其实功能挺完善的了,也没什么问题,不过做文档的话多少有点 UI 上有问题,更方便测试
    rapi 没用过,看上去挺不错的样子
    openapi-ui 只能说不在审美上,尤其是有大的有小的元素还密集...
    rookie2luochao
        86
    rookie2luochao  
    OP
       68 天前
    @crackidz 🥹我就是 openapi-ui 作者,我还是前端,我。。。,rapi 也是借鉴了很多 swagger-ui 设计,连最难用的接口折叠展示都保留着的,其实抄它们的设计也可以,可是当时我并不想啊,求 issue 提点改进意见
    rookie2luochao
        87
    rookie2luochao  
    OP
       68 天前
    @shubuqi 已经没啥更新动态了?
    Bingchunmoli
        88
    Bingchunmoli  
       68 天前 via Android
    @rookie2luochao 看起来和 swagger 没有区别,还要用服务器不是内嵌
    rookie2luochao
        89
    rookie2luochao  
    OP
       68 天前
    @Bingchunmoli 还要用服务器不是内嵌是什么意思,上面的所有文档都是可以接入到后端服务上面的
    Bingchunmoli
        90
    Bingchunmoli  
       68 天前 via Android
    @rookie2luochao 官方插件要么推送给 apifox 要么单独自托管。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1526 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 41ms · UTC 16:51 · PVG 00:51 · LAX 08:51 · JFK 11:51
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.