最近公司項目集成springFox,記錄一些swaggerUI日常使用,包括數組,文件,默認值,允許值,參數/結果類注解,響應碼..等等。
一.參數注解:
單參數:@ApiImplicitParam
多參數:@ApiImplicitParams
1 @ApiImplicitParams({ 2 @ApiImplicitParam(name = "pageIndex",value = "頁碼,默認值:0",dataType = "int", 3 paramType = "query"), 4 @ApiImplicitParam(name = "pageSize",value = "頁長,默認值:20",dataType = "int", 5 paramType = "query") 6 })
可以看一下參數注解接口相關屬性如下:
1 public @interface ApiImplicitParam { 2 //參數名 3 String name() default ""; 4 //參數作用,對應中文名 5 String value() default ""; 6 //默認值 7 String defaultValue() default ""; 8 //允許值的范圍,逗號分隔 9 String allowableValues() default ""; 10 //是否必傳,可以看到默認是非必填的 11 boolean required() default false; 12 //暫時沒用到 13 String access() default ""; 14 //是否允許數組 15 boolean allowMultiple() default false; 16 //參數類型:int/String之類的,注:不支持integer 17 String dataType() default ""; 18 //參數作用類型:比如query正常查詢參數,path表示路徑參數 19 String paramType() default ""; 20 //舉例 21 String example() default ""; 22 23 Example examples() default @Example({@ExampleProperty( 24 mediaType = "", 25 value = "" 26 )});
下面詳細介紹下幾種應用:
1.文件類型:
@ApiImplicitParam(name = "file",value = "文件",dataType = "file",paramType = "query")
2.數組,以string數組為例
@ApiImplicitParam(name = "type",value = "類型",dataType = "String", paramType = "query",allowMultiple = true),
3.默認值
@ApiImplicitParam(name = "type",value = "類型",dataType = "String",paramType = "query",defaultValue = "test"),
4.允許值,比如狀態,開關類字段,一般只支持0/1
@ApiImplicitParam(name = "status",value = "狀態",dataType = "int",paramType = "query",allowableValues = "0,1"),
5.參數/結果類注解 一般常用@requestbody封裝的參數類,或者設定的結果類。
public void create(@ApiParam @RequestBody Entity entity)
然后在對應的參數類中添加響應的@apimodel和@apiproperty注解
@ApiModel public class Entity { @ApiModelProperty(name = "id",value = "主鍵") private int id; @ApiModelProperty(name = "type",value = "類型",) private String type; }
6.響應碼
@ApiResponses({ @ApiResponse(code = 200,message = "操作成功"), })
在swaggerui界面的model中可以看到生成效果,這里我只加了前兩個注解
7.必填項,默認非必填。注:必填項一定要和接口設定一致。
@ApiImplicitParam(name = "id",value = "id",dataType = "String", paramType = "query",required = true)
8.路徑參數,比如接口路徑為 /type/{id},可以如下定義注解
@ApiImplicitParam(name = "id",value = "id",dataType = "String", paramType = "path",required = true)
待補充...