前言
最近公司打算做一个 openapi 开放平台,让我找一款好用的在线文档生成工具,具体要求如下:
- 必须是开源的
- 可能实时生成在线文档
- 反对全文搜寻
- 反对在线调试性能
- 界面柔美
说实话,这个需要看起来简略,然而实际上一点的都不简略。
我花了几天工夫到处百度,谷歌,技术博客 和 论坛查资料,先后调研了如下文档生成工具:
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 领有以下特点:
- 跨平台,linux、windows、macOS 等都反对;
- 反对语言宽泛,即便是不反对,也很不便扩大;
- 反对多个不同语言的多个我的项目生成一份文档;
- 输入模板可自定义;
- 依据文档生成 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 团队的在线文档分享工具,它能够放慢团队之间沟通的效率。
它都有些什么性能:
- 响应式网页设计,可将我的项目文档分享到电脑或挪动设施查看。同时也能够将我的项目导出成 word 文件,以便离线浏览。
- 权限治理,ShowDoc 上的我的项目有公开我的项目和私密我的项目两种。公开我的项目可供任何登录与非登录的用户拜访,而私密我的项目则须要输出明码验证拜访。明码由我的项目创建者设置。
- ShowDoc 采纳 markdown 编辑器,点击编辑器上方的按钮可不便地插入 API 接口模板和数据字典模板。
- ShowDoc 为页面提供历史版本性能,你能够不便地把页面复原到之前的版本。
- 反对文件导入,文件能够是 postman 的 json 文件、swagger 的 json 文件、showdoc 的 markdown 压缩包,零碎会自动识别文件类型。
长处:反对我的项目权限治理,多种格式文件导入,全文搜寻等性能,应用起来还是十分不便的。并且既反对部署本人的服务器,也反对在线托管两种形式。
毛病:不反对在线调试性能
集体倡议:如果不要求在线调试性能,这个在线文档工具值得应用。
最初说一句(求关注,不要白嫖我)
如果这篇文章对您有所帮忙,或者有所启发的话,帮忙扫描下发二维码关注一下,或者点赞、转发、在看。在公众号中回复:面试、代码神器、开发手册、工夫治理有超赞的粉丝福利,另外回复:加群,能够跟很多大厂的前辈交换和学习。
本文由博客群发一文多发等经营工具平台 OpenWrite 公布