前言
最近公司打算做一个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 公布