smart-doc 2.4.4 发布,Java 零注解 API 文档生成工具
smart-doc 是一款同时支持 java restful api 和 Apache Dubbo rpc 接口文档生成的工具,smart-doc 颠覆了传统类似 swagger 这种大量采用注解侵入来生成文档的实现方法。
smart-doc 完全基于接口源码分析来生成接口文档,完全做到零注解侵入,你只需要按照 java 标准注释编写,smart-doc 就能帮你生成一个简易明了的 markdown 或是一个像 GitBook 样式的静态 html 文档。如果你已经厌倦了 swagger 等文档工具的无数注解和强侵入污染,那请拥抱 smart-doc 吧!
功能特性
- 支持接口 debug。
- 零注解、零学习成本、只需要写标准 java 注释。
- 基于源代码接口定义自动推导,强大的返回结构推导。
- 支持 Spring MVC,Spring Boot,Spring Boot Web Flux(controller 书写方式),JAX-RS规范。
- 支持 Callable,Future,CompletableFuture 等异步接口返回的推导。
- 支持 JavaBean 上的 JSR303 参数校验规范,支持分组验证。
- 对 json 请求参数的接口能够自动生成模拟 json 参数。
- 对一些常用字段定义能够生成有效的模拟值。
- 支持生成 json 返回值示例。
- 支持从项目外部加载源代码来生成字段注释(包括标准规范发布的 jar 包)。
- 支持生成多种格式文档:Markdown、HTML5、Asciidoctor、Postman collection、Open Api 3.0+。
- 轻易实现在 Spring Boot 服务上在线查看静态 HTML5 api 文档。
- 开放文档数据,可自由实现接入文档管理系统。
- 一款代码注释检测工具,不写注释的小伙伴逃不过法眼了。
- 插件式快速集成(支持 maven 和 gradle 插件)。
- 支持 Apache Dubbo rpc 文档生成。
- 支持国产Solon应用开发框架。
Smart-doc 和其他工具的支持
功能特性 | smart-doc | swagger |
代码侵入 | 无 | 注解侵入性严重 |
集成复杂度 | 简单,只需插件 | 偏复杂 |
插件支持 | 有gradle和maven插件 | 无插件 |
openapi规范支持 | 支持openapi 3.0 | 完全支持openapi的版本 |
CI构建集成 | 可在ci构建阶段使用 maven或者gradle命令 启动插件生成文档
|
不支持 |
集中化文档中心集成 | 已经和torna企业级接口文档管理平台对接 |
不支持 |
维护持续性 | 值得信赖,开源后用户基础多,一直持续维护 | 全球用户多,开源维护值得信赖 |
接口debug | 2.0.0版本开始已经支持debug,页面比swagger漂亮太多了。 | 支持 |
Smart-doc 从 2.0.0 后几乎实现了 swagger ui 的功能,并且比 swagger ui 更简洁大方,也更符合国内开发者的诉求。当前smart-doc 的功能也已经
超过了 swagger 为 java 开发者提供的功能。当然 smart-doc 本身是只支持扫描代码生成 openapi 3.0 的文档的,也可以将生成的 openapi 3.0 文档导入到其他ui中渲染展示。
最近两年,国内也有不少开发者开发了无侵入idea文档生成插件,我们也在持续关注这些插件的发展。目前来讲这些idea的插件在集成上肯定比smart-doc简单,文档生成速度比smart-doc快(idea插件没有编译这些阶段),但是目前这些插件都没有解决掉多模块项目以及依赖部模块的场景下中的注释问题,对smart-doc发展过程中收集到的用例支持也还不完善。综合看smart-doc当前仍然是国内java web开发者生成文档的最佳工具。
更新内容
1. 优化对mongodb ObjectId类型的解析[#240](https://github.com/smart-doc-group/smart-doc/issues/240)
2. 优化OpenAPI生成时operationId值的填充,改为方法名[#235](https://github.com/smart-doc-group/smart-doc/issues/235)
3. 修复请求参数为Long类型数组时自定义mock提取错误[#244](https://github.com/smart-doc-group/smart-doc/issues/244)
4. 修复文档说明生成输出多个br标签[#248](https://github.com/smart-doc-group/smart-doc/issues/248)
5. 修复query param参数显示在Request-body中的问题[#242](https://github.com/smart-doc-group/smart-doc/issues/242)
6. 修复Controller类上RequestMapping多path包含parameter时的解析错误[#206](https://github.com/smart-doc-group/smart-doc/issues/206)
7. 修复多文件上传,推送到torna的类型错误[#234](https://github.com/smart-doc-group/smart-doc/issues/234)
8. 修复分组验证在OpenAPI中不生效问题[#243](https://github.com/smart-doc-group/smart-doc/issues/243)
9. 修复OpenAPI数据类型设置错误[#253](https://github.com/smart-doc-group/smart-doc/issues/253)
10. 支持在smart-doc.json配置中对@RequestHeader进行忽略了[#250](https://github.com/smart-doc-group/smart-doc/issues/250)
11. 修复controller注释html文档导航链接无效的问题[#255](https://github.com/smart-doc-group/smart-doc/issues/255)
12. 支持内部类枚举私有属性解析。
13. 移除Spring标记过时的`application/json;charset=UTF-8`,默认改为`application/json`
debug 页面效果
maven 或 gradle 插件
smart-doc 官方为了方便用户快速和无侵入的集成 smart-doc 的文档 api 生成能力,我们开发可相关的 maven 或者 gradle 插件。这里也推荐使用插件的方式来使用 smart-doc。
https://gitee.com/smart-doc-team/smart-doc-maven-plugin
官方推荐方案
smart-doc + Torna 组成行业领先的文档生成和管理解决方案,使用smart-doc无侵入完成Java源代码分析和提取注释生成API文档,自动将文档推送到Torna企业级接口文档管理平台。
smart-doc在国内很多企业中被用来替换了swagger,甚至是在国内Top 3内的大厂都有smart-doc的二次开发版本。Torna未来的目标是追赶和超越Yapi。smart-doc针对java spring技术栈的解析能力目前为业内最强(不服就拿工具来跑smart-doc的解析demo)。所以smart-doc+Torna的方案威力巨大,Torna目前处于高速迭代期,欢迎体验Torna,我们努力为社区提供高效好用的接口文档解决方案。
升级建议
smart-doc 可基于以前的版本平滑升级,本次更新比较多,但是这都不影响老的功能。
DEMO
使用demo轻松玩转接口文档生成,其他用户案例文档效果展示:https://api.doubans.com/
知名用户
- 科大讯飞
- 一加
- 小米
- 马蜂窝
在2021年8月 smart-doc 也新增了一些外海的用户。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
酷瓜云课堂(腾讯云)开源版 v1.5.2 发布,免费商用,在线教育解决方案
更新内容 补充话题列表课程数据结构 调整发送验证码相关样式 优化套餐和话题下拉课程数据显示 去除礼物详情中多出来的"}}"标签 修正关闭秒杀订单时没有回填库存的问题 vditor编辑器切换为七牛cdn加速 系统介绍 酷瓜云课堂,依托腾讯云基础服务架构,采用C扩展框架Phalcon开发,GPL-2.0开源协议,致力开源网课系统,开源网校系统,开源知识付费系统,开源在线教育系统。100%全功能开源,无加密无阉割,免费商用。 系统功能 实现了点播、直播、专栏、面授、会员、群组、积分、秒杀等,100% 真开源在线教育解决方案,可以免费商用。 托管仓库 gitee 仓库 github 仓库 意见反馈 在线反馈(推荐) 官方论坛(推荐)
-
下一篇
如何写出高性能代码之优化内存回收(GC)
导语 同一份逻辑,不同人的实现的代码性能会出现数量级的差异; 同一份代码,你可能微调几个字符或者某行代码的顺序,就会有数倍的性能提升;同一份代码,也可能在不同处理器上运行也会有几倍的性能差异;十倍程序员 不是只存在于传说中,可能在我们的周围也比比皆是。十倍体现在程序员的方法面面,而代码性能却是其中最直观的一面。 本文是《如何写出高性能代码》系列的第三篇,本文将告诉你如何写出GC更优的代码,以达到提升代码性能的目的 优化内存回收 垃圾回收GC(Garbage Collection)是现在高级编程语言内存回收的主要手段,也是高级语言所必备的特性,比如大家所熟知的Java、python、go都是自带GC的,甚至是连C++ 也开始有了GC的影子。GC可以自动清理掉那些不用的垃圾对象,释放内存空间,这个特性对新手程序猿极其友好,反观没有GC机制的语言,比如C++,程序猿需要自己去管理和释放内存,很容易出现内存泄露的bug,这也是C++的上手难度远高于很多语言的原因之一。 GC的出现降低了编程语言上手的难度,但是过度依赖于GC也会影响你程序的性能。这里就不得不提到一个臭名昭著的词—...
相关文章
文章评论
共有0条评论来说两句吧...