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 漂亮太多了。 | 支持 |
超过了 swagger 为 java 开发者提供的功能。当然 smart-doc 本身是只支持扫描代码生成 openapi 3.0 的文档的,也可以将生成的 openapi 3.0 文档导入到其他 ui 中渲染展示。
最近两年,国内也有不少开发者开发了无侵入 idea 文档生成插件,我们也在持续关注这些插件的发展。目前来讲这些 idea 的插件在集成上肯定比 smart-doc 简单,文档生成速度比 smart-doc 快 (idea 插件没有编译这些阶段,但是目前这些插件都没有解决掉多模块项目以及依赖部模块的场景下中的注释问题,对 smart-doc 发展过程中收集到的用例支持也还不完善。综合看 smart-doc 当前仍然是国内 java web 开发者生成文档的最佳工具。