- 业务开发任务紧,手写接口文档麻烦!
- swagger用起来比较麻烦,代码侵入较大,而且有一些类型嵌套的方面的不支持
- 可以自定义输出文档的类型和结构去贴合自己公司的文档类型
- 想帮助大家可以轻松自由又舒服的生成接口文档
- 支持springmvc的接口
- 支持dubbo-rest的接口
- 支持jsr和hibernate validator的校验注解
- 支持泛型以及嵌套对象的输出
- 可以生成相应的模拟json请求报文以供调试(curl,postman等)
- 支持控制台打印
- 支持输出md文档
<dependency>
<groupId>io.github.shijiawei110</groupId>
<artifactId>api4j</artifactId>
<version>1.1.0</version>
</dependency>
- 在您的mvc或者dubbo-rest等接口的class或者method(推荐)上添加注解@ApiTag
- 推荐在method上添加注解
- 注解参数可选填 : name[接口名],value[接口标注],author[接口作者]
- 可以在方法或者参数上添加注释,生成文档的时候会输出注释,但是@author @params 等的doc注释不会被录入输出
- 使用我们 ApiDocUtil 工具类一键运行输出
/**
* 这是mvc get test注释,注释会被文档输出
*/
@RequestMapping("/test")
@ApiTag(name = "mvc测试接口", value = "这是mvc get test", author = "sjw")
public Integer getTest1(@RequestParam(value = "test_name", required = false) String name) {
return null;
}
//直接使用即可,将会扫描当前项目下的带有注解的类或者方法,输出文档打印到控制台
ApiDocUtil.makeApiDoc();
//需要输出md文档(默认生成路径在项目路径下的 /src/test/resources/apidoc)
ApiDocUtil.makeApiDoc(ApiDocConf.defaultConf().mdSet());
//如果需要指定输出目录
ApiDocConf apiDocConf = new ApiDocConf().mdSet();
apiDocConf.setDocOutputPath("/Users/download/apidoc");
ApiDocUtil.makeApiDoc(apiDocConf);
//如果需要指定请求地址的公用根路径:
//比如 指定的请求url为 /getTest/getName 会变成/service/getTest/getName
ApiDocUtil.makeApiDoc(ApiDocConf.defaultConf("service").mdSet());
public class ParamDemo {
/**
* 在这里写字段含义的注释可以在文档中输出
*/
@NotNull
private Long id;
@JsonProperty("test_id")
@Min(1)
@Max(5)
private Long testId;
/**
* age jackson注解可以改变字段名
*/
@JsonProperty("test_age")
private Integer testAge;
/**
* 名称
*/
@Length(min = 1, max = 100)
private String testName;
@NotBlank
private String ok;
@NotEmpty
@Size(min = 1, max = 10)
private List<String> reqStrs;
/**
* 书籍实体类
*/
private Book book;
}
//设置扫描的根路径
String rootPath = "/Users/javaproject/project";
ApiDocConf apiDocConf = ApiDocConf.customConf(rootPath);
//添加类名加方法名 中间用.隔开
apiDocConf.addMethod("ClassName1.MethodName1");
apiDocConf.addMethod("ClassName1.MethodName2");
//同理可以再控制台或者md文档输出
ApiDocUtil.makeApiDoc(apiDocConf);
- 支持对外网关接口的文档生成
- 支持生成更加丰富的文档形式(比如html等)