這裡只簡單的說一下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註解的使用算是入門了,注意,其中還是有很多細節要注意的,由於時間問題,沒有一一列舉出來。歡迎大家點評指正。