乐趣区

关于spring:求你别再用swagger了给你推荐几个在线文档生成神器

前言

最近公司打算做一个 openapi 开放平台,让我找一款好用的在线文档生成工具,具体要求如下:

  1. 必须是开源的
  2. 可能实时生成在线文档
  3. 反对全文搜寻
  4. 反对在线调试性能
  5. 界面柔美

说实话,这个需要看起来简略,然而实际上一点的都不简略。

我花了几天工夫到处百度,谷歌,技术博客 和 论坛查资料,先后调研了如下文档生成工具:

gitbook

github 地址:https://github.com/GitbookIO/gitbook

开源协定:Apache-2.0 License

Star: 22.9k

开发语言:javascript

用户:50 万 +

举荐指数:★★★

示例地址:https://www.servicemesher.com/envoy/intro/arch_overview/dynamic_configuration.html

gitBook 是一款文档编辑工具。它的性能相似金山 WPS 中的 word 或者微软 office 中的 word 的文档编辑工具。它能够用来写文档、建表格、插图片、生成 pdf。当然,以上的性能 WPS、office 可能做得更好,然而,gitBook 还有更最弱小的性能:它能够用文档建设一个网站,让更多人理解你写的书,另外,最最外围的是,他反对 Git,也就意味着,它是一个分布式的文档编辑工具。你能够随时随地来编写你的文档,也能够多人独特编写文档,哪怕多人编写同一页文档,它也能记录每个人的内容,而后通知你他们之间的区别,也能记录你的每一次改变,你能够查看每一次的书写记录和变动,哪怕你将文档都删除了,它也能找回来!这就是它继承 git 后的厉害之处!

长处:应用起来非常简单,反对全文搜寻,能够跟 git 完满集成,对代码无任何嵌入性,反对 markdown 格局的文档编写。

毛病:须要独自保护一个文档我的项目,如果接口批改了,须要手动去批改这个文档我的项目,不然可能会呈现接口和文档不统一的状况。并且,不反对在线调试性能。

集体倡议:如果对外的接口比拟少,或者编写之后不会常常变动能够用这个。

smartdoc

gitee 地址:https://gitee.com/smart-doc-team/smart-doc

开源协定:Apache-2.0 License

Star: 758

开发语言:html、javascript

用户:小米、科大讯飞、1 加

举荐指数:★★★★

示例地址:https://gitee.com/smart-doc-team/smart-doc/wikis/ 文档效果图?sort_id=1652819

smart-doc 是一个 java restful api 文档生成工具,smart-doc 颠覆了传统相似 swagger 这种大量采纳注解侵入来生成文档的实现办法。smart-doc 齐全基于接口源码剖析来生成接口文档,齐全做到零注解侵入,只须要依照 java 规范正文的写就能失去一个规范的 markdown 接口文档。

长处:基于接口源码剖析生成接口文档,零注解侵入,反对 html、pdf、markdown 格局的文件导出。

毛病:须要引入额定的 jar 包,不反对在线调试

集体倡议:如果实时生成文档,然而又不想打一些额定的注解,比方:应用 swagger 时须要打上 @Api、@ApiModel 等注解,就能够应用这个。

redoc

github 地址:https://github.com/Redocly/redoc

开源协定:MIT License

Star: 10.7K

开发语言:typescript、javascript

用户:docker、redocly

举荐指数:★★★☆

示例地址:https://docs.docker.com/engine/api/v1.40/

redoc 本人号称是一个最好的在线文档工具。它反对 swagger 接口数据,提供了多种生成文档的形式,非常容易部署。应用 redoc-cli 可能将您的文档捆绑到零依赖的 HTML 文件中,响应式三面板设计,具备菜单 / 滚动同步。

长处:十分不便生成文档,三面板设计

毛病:不反对中文搜索,分为:一般版本 和 付费版本,一般版本不反对在线调试。另外 UI 交互个人感觉不适宜国内大多数程序员的操作习惯。

集体倡议:如果想疾速搭建一个基于 swagger 的文档,并且不要求在线调试性能,能够应用这个。

knife4j

gitee 地址:https://gitee.com/xiaoym/knife4j

开源协定:Apache-2.0 License

Star: 3k

开发语言:java、javascript

用户:未知

举荐指数:★★★★

示例地址:http://swagger-bootstrap-ui.xiaominfo.com/doc.html

knife4j 是为 Java MVC 框架集成 Swagger 生成 Api 文档的加强解决方案, 前身是 swagger-bootstrap-ui, 取名 kni4j 是心愿她能像一把匕首一样玲珑, 轻量, 并且性能强悍。

长处:基于 swagger 生成实时在线文档,反对在线调试,全局参数、国际化、拜访权限管制等,性能十分弱小。

毛病:界面有一点点丑,须要依赖额定的 jar 包

集体倡议:如果公司对 ui 要求不太高,能够应用这个文档生成工具,比拟性能还是比拟弱小的。

yapi

github 地址:https://github.com/YMFE/yapi

开源协定:Apache-2.0 License

Star: 17.8k

开发语言:javascript

用户:腾讯、阿里、百度、京东等大厂

举荐指数:★★★★★

示例地址:http://swagger-bootstrap-ui.xiaominfo.com/doc.html

yapi 是去哪儿前端团队自主研发并开源的,次要反对以下性能:

  • 可视化接口治理
  • 数据 mock
  • 自动化接口测试
  • 数据导入(包含 swagger、har、postman、json、命令行)
  • 权限治理
  • 反对本地化部署
  • 反对插件
  • 反对二次开发

长处:性能十分弱小,反对权限治理、在线调试、接口自动化测试、插件开发等,BAT 等大厂等在应用,阐明性能很好。

毛病:在线调试性能须要装置插件,用户体检略微有点不好,次要是为了解决跨域问题,可能有安全性问题。不过要解决这个问题,能够本人实现一个插件,应该不难。

集体倡议:如果不思考插件平安的安全性问题,这个在线文档工具还是十分好用的,能够说是一个神器,笔者在这里强烈推荐一下。

apidoc

github 地址:https://github.com/apidoc/apidoc

开源协定:MIT License

Star: 8.7k

开发语言:javascript

用户:未知

举荐指数:★★★★☆

示例地址:https://apidocjs.com/example/#api-User

apidoc 是一个简略的 RESTful API 文档生成工具,它从代码正文中提取特定格局的内容生成文档。反对诸如 Go、Java、C++、Rust 等大部分开发语言,具体可应用 apidoc lang 命令行查看所有的反对列表。

apidoc 领有以下特点:

  1. 跨平台,linux、windows、macOS 等都反对;
  2. 反对语言宽泛,即便是不反对,也很不便扩大;
  3. 反对多个不同语言的多个我的项目生成一份文档;
  4. 输入模板可自定义;
  5. 依据文档生成 mock 数据;

长处:基于代码正文生成在线文档,对代码的嵌入性比拟小,反对多种语言,跨平台,也可自定义模板。反对搜寻和在线调试性能。

毛病:须要在正文中减少指定注解,如果代码参数或类型有批改,须要同步批改注解相干内容,有肯定的保护工作量。

集体倡议:这种在线文档生成工具提供了另外一种思路,swagger 是在代码中加注解,而 apidoc 是在注解中加数据,代码嵌入性更小,举荐应用。

showdoc

github 地址:https://github.com/star7th/showdoc

开源协定:Apache Licence

Star: 8.1k

开发语言:javascript、php

用户:超过 10000+ 互联网团队正在应用

举荐指数:★★★★☆

示例地址:https://www.showdoc.com.cn/demo?page_id=9

ShowDoc 就是一个非常适合 IT 团队的在线文档分享工具,它能够放慢团队之间沟通的效率。

它都有些什么性能:

  1. 响应式网页设计,可将我的项目文档分享到电脑或挪动设施查看。同时也能够将我的项目导出成 word 文件,以便离线浏览。
  2. 权限治理,ShowDoc 上的我的项目有公开我的项目和私密我的项目两种。公开我的项目可供任何登录与非登录的用户拜访,而私密我的项目则须要输出明码验证拜访。明码由我的项目创建者设置。
  3. ShowDoc 采纳 markdown 编辑器,点击编辑器上方的按钮可不便地插入 API 接口模板和数据字典模板。
  4. ShowDoc 为页面提供历史版本性能,你能够不便地把页面复原到之前的版本。
  5. 反对文件导入,文件能够是 postman 的 json 文件、swagger 的 json 文件、showdoc 的 markdown 压缩包,零碎会自动识别文件类型。

长处:反对我的项目权限治理,多种格式文件导入,全文搜寻等性能,应用起来还是十分不便的。并且既反对部署本人的服务器,也反对在线托管两种形式。

毛病:不反对在线调试性能

集体倡议:如果不要求在线调试性能,这个在线文档工具值得应用。

最初说一句(求关注,不要白嫖我)

如果这篇文章对您有所帮忙,或者有所启发的话,帮忙扫描下发二维码关注一下,或者点赞、转发、在看。在公众号中回复:面试、代码神器、开发手册、工夫治理有超赞的粉丝福利,另外回复:加群,能够跟很多大厂的前辈交换和学习。

本文由博客群发一文多发等经营工具平台 OpenWrite 公布

退出移动版