JApiDocs是一个用于生成Java接口文档的工具,比起swagger,它不需要开发人员额外添加注解,是非侵入式的工具。
先来看看它的效果:
页面很简洁。
使用步骤如下:
添加maven依赖
<dependency>
<groupId>io.github.yedaxia</groupId>
<artifactId>japidocs</artifactId>
<version>1.4.2</version>
</dependency>
启动main方法中添加如下代码:
private static void generateDoc(){
DocsConfig config = new DocsConfig();
config.setProjectPath("项目路径");
config.setProjectName("项目名称");
config.setApiVersion("文档版本");
config.setDocsPath("文档保存路径");
config.setResourcePath("文档模板路径");
config.setAutoGenerate(true);// 开启自动生成
Docs.buildHtmlDocs(config);
}
编写代码时采用Java规范的注释
/**
* 参数校验测试接口
* @Author: 赵子明
* @Date: 2023/6/24
* @Description: 参数校验测试接口
* @Version: 1.0
*/
@Validated
@RestController
@RequestMapping("/hello")
public class HelloController {
@Autowired
private HelloService helloService;
/**
* 手动触发校验接口测试
* @param dto 待校验的bean
* @return 校验的bean,会回写校验信息
*/
@PostMapping("/userInvokeValidTest")
public DataTypeValidDTO userInvokeValidTest(@RequestBody DataTypeValidDTO dto){
return helloService.userInvokeValidTest(dto);
}
}
@Data
public class DataTypeValidDTO {
/**
* 一个10天前的日期,格式必须是yyyy-MM-dd
*/
@MyDateValid(message = "日期必须是10天前的")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date beforeTenDaysDate;
/**
* 金额,只允许两位小数
*/
@Digits(integer = Integer.MAX_VALUE, fraction = 2)
@DecimalMax(value = "5.21")
@DecimalMin(value = "1.21")
private String money;
/**
* 年龄,1到150之间
*/
@Range(min = 1, max = 150)
private String age;
/**
* 保存校验错误信息
*/
private String validMsg;
}
最后启动应用,即可在config.setDocsPath(“文档保存路径”);中设置的路径下面看到如下文件: