springboot 之 自动生成接口文档工具JApiDocs
JApiDocs是一个无需额外注解、开箱即用的SpringBoot接口文档生成工具
简易使用方法
1.添加依赖
<dependency><groupId>io.github.yedaxia</groupId><artifactId>japidocs</artifactId><version>1.4.3</version>
</dependency>
2. 参数配置
在main函数中添加如下代码
DocsConfig config = new DocsConfig();
config.setProjectPath("your springboot project path"); // 项目根目录
config.setProjectName("ProjectName"); // 项目名称
config.setApiVersion("V1.0"); // 声明该API的版本
config.setDocsPath("your api docs path"); // 生成API 文档所在目录
config.setAutoGenerate(Boolean.TRUE); // 配置自动生成
config.addPlugin(new MarkdownDocPlugin());
Docs.buildHtmlDocs(config); // 执行生成文档
3.执行main函数,查看文档
我自己的代码
//类1
@Data
public class UserVO {private Integer age; //用户年龄private String name; //姓名
}//类2
/*** 测试APIdoc*/
@RestController
@RequestMapping(value = "testapi")
public class TestController {/*** GET测试*/@GetMapping(value = "testGET")public UserVO testGET(){UserVO userVO = new UserVO();userVO.setAge(12);userVO.setName("小明");return userVO;}/*** POST测试* @param userinfo*/@PostMapping(value = "testPOST")public String testPOST(@RequestBody UserVO userinfo){return "post";}/*** 测试POST没有注解* @param param* @return*/@PostMapping(value = "testPOSTNO", produces = "application/json")public int testPOSTnoAno(String param){return 3;}public void test(){System.out.println("000000");}
}//main函数public static void main(String[] args) {SpringApplication.run(DemoApplication.class, args);DocsConfig config = new DocsConfig();config.setProjectPath("D:\\ProgramSoft\\IDEA\\java_project\\apidoc"); // 项目根目录config.setProjectName("demo"); // 项目名称config.setApiVersion("V1.0"); // 声明该API的版本config.setDocsPath("D:\\ProgramSoft\\IDEA\\java_project\\apidoc"); // 生成API 文档所在目录config.addPlugin(new MarkdownDocPlugin());config.setAutoGenerate(Boolean.TRUE); // 配置自动生成Docs.buildHtmlDocs(config); // 执行生成文档}
结果展示:
1. 分组名称 @description
建议不用这个
2. 接口参数@param
JApiDocs 会通过 @param 来寻找接口参数和进一步解析参数的内容
注:注释一定要放在@注解的上面,否则参数会不显示
/*** @description 保存用户* @param docId 医生id*/
@PostMapping("advice")
public RoleInfo getAdviceList(String docId){return roleService.FindRoleBydocId(docId);
}
3.高级配置
(1)@ApiDoc
a.实现
JApiDocs 默认只导出声明了@ApiDoc的接口,我们前面通过设置config.setAutoGenerate(Boolean.TRUE) 来解除了这个限制。如果你不希望把所有的接口都导出,你可以把autoGenerate设置关闭,在相关Controller类或者接口方法上通过添加@ApiDoc来确定哪些接口需要导出。
b.其他设置
result: 这个可以直接声明返回的对象类型,如果你声明了,将会覆盖SpringBoot的返回对象
stringResult:返回字符串,在返回结果比较简单,而不想创建一个专门的返回类,则可以考虑使用这个属性。
url: 请求URL,扩展字段,用于支持非SpringBoot项目
method: 请求方法,扩展字段,用于支持非SpringBoot项目
例:
@ApiDoc(result = AdminVO.class, url = "/api/v1/admin/login2", method = "post")
stringResult 实例,在文档中将会自动格式化json字符串:
@ApiDoc(stringResult = "{code: 0, data: 'success'}")
@GetMapping(value = "custom-json")
public Map customJsonResult(){}
(2)@Ignore (忽略Controller,接口,字段)
例:忽略Controller
@Ignore
public class UserController {
}
4.如何排查错误?
关闭自动生成config.setAutoGenerate(Boolean.FALSE),使用@ApiDoc 来一个个接口导出排查问题。
在IDEA下正常写代码,注释好方法即可.
当然,以上是简易版的,如果想控制更详细参数,建议读一下中文介绍,也不多
中文介绍
参考其他文章
在此对作者表示感谢,方便了整理文档
springboot 之 自动生成接口文档工具JApiDocs相关推荐
- 自动生成接口文档之JApiDocs教程
JApiDocs教程 前言 作为一名优秀的程序员来说,由于涉及到要与前端进行对接,所以避免不了的就是写接口文档.写完接口文档,一旦代码返回结果,参数等出现变动,接口文档还得随之改动,十分麻烦,违背了我 ...
- springboot 中文文档_比Swagger还好用的自动生成接口文档工具
JApiDocs是一个无需额外注解.开箱即用的SpringBoot接口文档生成工具. 编写和维护API文档这个事情,对于后端程序员来说,是一件恼人但又不得不做的事情,我们都不喜欢写文档,但除非项目前后 ...
- SpringBoot自动生成接口文档
跟大家介绍一个自动生成接口文档的工具包,作者的理念是注释即文档,在写代码的时候写上注释,项目启动后就会生成接口文档,非常方便,省去了Swagger写注解的过程. 仓库地址:https://github ...
- java自动生成接口文档
java自动生成接口文档 maven依赖 工具类 展示效果 首页 接口页 在平时的开发过程中必定要写接口文档 作为程序员 最烦的2件事 1.别人让你写接口文档 2.接手别人的项目没有接口文档 由此可见 ...
- Django框架深入了解_05 (Django中的缓存、Django解决跨域流程(非简单请求,简单请求)、自动生成接口文档)(二)
二.跨域: 回到顶部 跨域知识介绍: 点我以前博客 跨域解决方法:CORS:跨域资源共享 CORS请求分类(简单请求和非简单请求) 简单请求(simple request):只需要在头信息之中增加一个 ...
- Django框架深入了解_05 (Django中的缓存、Django解决跨域流程(非简单请求,简单请求)、自动生成接口文档)(一)
阅读目录 一.Django中的缓存: 前戏: Django中的几种缓存方式: Django中的缓存应用: 二.跨域: 跨域知识介绍: CORS请求分类(简单请求和非简单请求) 示例: 三.自动生成接口 ...
- Spring Boot(九)Swagger2自动生成接口文档和Mock模拟数据
一.简介 在当下这个前后端分离的技术趋势下,前端工程师过度依赖后端工程师的接口和数据,给开发带来了两大问题: 问题一.后端接口查看难:要怎么调用?参数怎么传递?有几个参数?参数都代表什么含义? 问题二 ...
- idea swagger生成接口文档_Spring Boot(九)Swagger2自动生成接口文档和Mock模拟数据...
一.简介 在当下这个前后端分离的技术趋势下,前端工程师过度依赖后端工程师的接口和数据,给开发带来了两大问题: 问题一.后端接口查看难:要怎么调用?参数怎么传递?有几个参数?参数都代表什么含义? 问题二 ...
- DRF 自动生成接口文档
Python微信订餐小程序课程视频 https://edu.csdn.net/course/detail/36074 Python实战量化交易理财系统 https://edu.csdn.net/cou ...
最新文章
- Java项目:健身器材商城系统(java+Jdbc+Servlet+Ajax+Fileupload+mysql)
- 数据结构与算法(十二):八大经典排序算法再回顾
- flask-wtforms
- C语言试题二之计算并输出下列多项式值s=1+1/(1+2)+1/(1+2+3)+..1/(1+2+3…+50)
- [Redux/Mobx] 在Redux中怎么发起网络请求?
- 控制台应用程序换换为窗体应用_Epic为开发者设计了一套iPhone使用的运动捕捉应用程序...
- 关于Request.ServerVariables(HTTP_REFERER)
- 算法-字符串 循环左移
- shell 编程基础
- 金山安全联手方正科技 为用户提供最佳互联网安全环境
- matlab三维三角网格,有限元分析利用matlab的gplot函数实现三维划分网格的方法
- 基于Modbus/TCP的西门子1200PLC和STM32通信
- html插入cad,cad插件有哪些
- 招聘-中软国际外派中国移动(广州)
- php 专业英语,给大家推荐几个专业英语翻译功能强大的网站
- 工具推荐:用VS code 导出、导入和运行Excel中的VBA代码
- 如何使用TensorRT加速深度学习推理
- do{...}while(false)的用法
- 川普哭诉“推特狂掉粉”,将用行政命令监管硅谷?
- java毕业设计——基于java+JSP+sqlserver的智能在线考试信息管理系统设计与实现(毕业论文+程序源码)——智能在线考试信息管理系统