前段時間上班摸魚之餘,或者回家無事可幹,想着寫點開源小玩意能夠幫助本身平時的開發,想來想去就想着每次給別人提供接口都要手寫,swagger又過重太麻煩。就想着本身寫一個簡單點的,輕量點的小工具。html
因而-----> api4j誕生了。java
<dependency>
<groupId>io.github.shijiawei110</groupId>
<artifactId>api4j</artifactId>
<version>1.1.0</version>
</dependency>
複製代碼
/**
* 這是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);
複製代碼
點擊->github地址git