JApiDocs是一个无需额外注解、开箱即用的SpringBoot接口文档生成工具。
编写和维护API文档这个事情,对于后端程序员来说,是一件恼人但又不得不做的事情,我们都不喜欢写文档,但除非项目前后端代码都是自己写的,否则API文档将是前后端协作中一个不可或缺的沟通界面。
既然不可避免,那就想办法弄个轮子吧。人生苦短,必须偷懒。
无图无真相,生成文档的效果如下:
相比Swagger要写一堆注解,Spring RestDocs需要写测试用例,才能生成API文档。JApiDocs 具有无痛集成的特点,你只需花几分钟就能知道它怎么用了。
快速开始
要使得JApiDcos正确工作,你写的代码应该是像下面的样子的:
1 | /** |
2 | * 用户接口 |
3 | */ |
4 | "/api/user/") ( |
5 |
|
6 | public class UserController { |
7 | /** |
8 | * 用户列表 |
9 | * @param listForm |
10 | */ |
11 | "list", method = {RequestMethod.GET, RequestMethod.POST} ) (path = |
12 | public ApiResult<PageResult<UserVO>> list(UserListForm listForm){ |
13 | return null; |
14 | } |
15 | |
16 | /** |
17 | * 保存用户 |
18 | * @param userForm |
19 | */ |
20 | "save") (path = |
21 | public ApiResult<UserVO> saveUser(@RequestBody UserForm userForm){ |
22 | return null; |
23 | } |
24 | } |
我们给Controller类和方法加上必要的注释,给接口方法返回相关的对象类型。是的,这样JApiDocs就能解析到相关的接口信息了,就跟我们平时写的代码是差不多的,但要注意,你要通过@param
来告诉JApiDocs接口的参数,但在IDE的帮助下,这个工作将是轻松愉悦的:
然后你在任意一个main
入口方法执行下面的代码就可以生成文档了:
1 | DocsConfig config = new DocsConfig(); |
2 | config.setProjectPath("your springboot project path"); // 项目根目录 |
3 | config.setProjectName("ProjectName"); // 项目名称 |
4 | config.setApiVersion("V1.0"); // 声明该API的版本 |
5 | config.setDocsPath("your api docs path"); // 生成API 文档所在目录 |
6 | config.setAutoGenerate(Boolean.TRUE); // 配置自动生成 |
7 | Docs.buildHtmlDocs(config); // 执行生成文档 |
是的,接下来你只管好好写代码,生成Api文档的工作就可以交给JApiDocs了,你不需要再为额外编写和维护文档而烦恼。
功能特性
1、代码即文档
JApiDocs是通过直接解析SpringBoot的源码语法来工作的,所以只要Controller的语法符合一定的代码规范,有合理的注释,就可以直接导出文档。
2、支持导出HTML
便捷的导航和接口查看界面;可本地预览,或者部署到HTTP服务器。推荐部署到服务器,方便前后端展开协作。
3、同步导出客户端Model代码
支持导出Android端的 Java 和iOS端的 Object C Model代码,减少前端程序员的重复编码工作。
4、更多特性
支持接口搜索;支持不同版本和英文文档;自定义扩展等。
简洁的文档
再好用的东西,如果没有文档说明,别人也无从入手。为了让大家尽快上手,JApiDocs准备了一份极简的文档说明,确保你在几分钟就能用上JApiDocs。
花5分钟不到就能认识一个提高工作效率的工具,让你把更多的时间花在更加有价值的事情上,你确认不看一下吗?
温馨提示:GitHub上收藏和支持一个项目最好的方式就是点个star哦!
欢迎大家来star和提issue。
关于Agile Studio工作室
我们是一支由资深独立开发者和设计师组成的团队,成员均有扎实的技术实力和多年的产品设计开发经验,提供可信赖的软件定制服务。
未经声明,本站文章均为原创,转载请附上链接:
http://blog.agilestudio.cn/Why-You-Should-Use-JApiDcos/