Swagger3注解使用


這里只簡單的說一下swagger的傳值,返回值時注解的使用演示。相關注解及說明見其他文章

接收參數方式1

我們常規接收參數,可以使用一個類,類里面把屬性作為接收的參數,使用注解對屬性進行說明。但是這種傳參方式,我調試的時候,支持前端的傳參方式為:form-data

例子如下:

因為這種方式我們用的不多,所以這里就不展開來講

一般我們前端都是傳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注解的使用算是入門了,注意,其中還是有很多細節要注意的,由於時間問題,沒有一一列舉出來。歡迎大家點評指正。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM