這里只簡單的說一下swagger的傳值,返回值時注解的使用演示。相關注解及說明見其他文章
接收參數方式1
例子如下:
因為這種方式我們用的不多,所以這里就不展開來講
一般我們前端都是傳json數據過來后端,后端接收參數是直接用JSONObject或Map所以主要講一下第二種
接收參數方式2
前端傳參:json
后端接收:jsonObject或Map
對於這種JSONObject接收參數的,我們不能用第一種方式,此時應該用另外兩個注解來實現
注意:dataType屬性默認是String,如果要換成其他,比如int屬性,不能直接寫int或Interger,一定要加上全類名,不然會被解析成string類型。
代碼如下:
1 /** 2 * 測試接口 3 * 4 * @param jsonObject 前端傳過來的參數 5 * @return 無 6 */ 7 @PostMapping("/test") 8 @ApiOperation(value = "測試接口", httpMethod = "POST", notes = "測試,這是一個后端的測試接口") 9 @ApiImplicitParams({ 10 @ApiImplicitParam(value = "這是具體的參數1說明", name = "parm1", required = true, dataType = "String", 11 paramType = "query"), 12 @ApiImplicitParam(value = "參數二是string類型", name = "parm2", required = true, dataType = "String", 13 paramType = "query"), 14 @ApiImplicitParam(value = "參數三是int類型", name = "parm3", required = true, dataType = "java.lang.Integer", 15 paramType = "query"), 16 @ApiImplicitParam(value = "參數四是布爾類型", name = "parm4", required = true, dataType = "java.lang.Boolean", 17 paramType = "query"), 18 @ApiImplicitParam(value = "參數五:0表示成功,1表示失敗", name = "parm5", required = true, dataType = "String", 19 paramType = "query") 20 }) 21 public JSONObject testParm(JSONObject jsonObject) { 22 23 return null; 24 25 } 26 27 }
這樣子看,可能顯得代碼略顯臃腫,但是我們寫代碼的時候,把它折疊起來就好了,效果如下
接下來,看一下swagger中的具體效果圖
響應參數
請求參數我們了解了,接下來我們看一下響應參數,首先所有的響應都要基於ResponseVo這個類。
1 @Data 2 @ApiModel() 3 public class ResponseVo<T> implements Serializable { 4 @ApiModelProperty(value = "默認時間") 5 private String defaultTimeZone; 6 @ApiModelProperty(value = "成功為1,失敗為0") 7 private Integer result; 8 @ApiModelProperty(value = "返回值信息") 9 private T data; 10 @ApiModelProperty(value = "返回給前端的語言,默認是:zh_CN") 11 private String lang; 12 @ApiModelProperty(value = "時間,默認是:Asia/Shanghai") 13 private String userTimeZone; 14 15 16 public ResponseVo(Integer result, T data) { 17 this(result, "Asia/Shanghai", "Asia/Shanghai", "zh_CN", data); 18 } 19 20 21 public ResponseVo(Integer result, String defaultTimeZone, String userTimeZone, String lang, T data) { 22 this.defaultTimeZone = defaultTimeZone; 23 this.result = result; 24 this.userTimeZone = userTimeZone; 25 this.lang = lang; 26 this.data = data; 27 } 28 29 @Override 30 public String toString() { 31 return JSONObject.toJSONString(this); 32 } 33 }
swagger效果圖
swagger調試效果圖:
返回實列1
ok,接下來,我們進行一些復雜的操作,我們嘗試模擬下面這里復雜的類型返回
可以看出 formFieldDataOrder是一個數組
tableData是一個對象
formFieldData是一個對象
java代碼
首先創建兩個類,然后在ResponseDataVo里面定義三個屬性,,其中數組的用定義為List,對象定義為具體的類
注意:定義為返回值的類,一定要加上@ApiModel注解
返回值設置
swagger效果:
返回實列2
接下來,我們往里面添加數據
老樣子,創建IslandId類和Name類,在FormFieldData類中設置這兩個對象屬性
設置對應的返回值
swagger效果圖
swagger調試結果圖
返回實列3
接下來,我們完善一下Island里面的屬性
定義IslandId對象里面的屬性
設置對應的值
swagger效果圖
調試結果
到這里,swagger注解的使用算是入門了,注意,其中還是有很多細節要注意的,由於時間問題,沒有一一列舉出來。歡迎大家點評指正。