Swagger3註解使用

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

接收參數方式1

咱們常規接收參數,可使用一個類,類裏面把屬性做爲接收的參數,使用註解對屬性進行說明。可是這種傳參方式,我調試的時候,支持前端的傳參方式爲:form-datajava

例子以下:json

由於這種方式咱們用的很少,因此這裏就不展開來說後端

通常咱們前端都是傳json數據過來後端,後端接收參數是直接用JSONObject或Map因此主要講一下第二種數組

 

接收參數方式2

前端傳參:jsonapp

後端接收:jsonObject或Mapide

對於這種JSONObject接收參數的,咱們不能用第一種方式,此時應該用另外兩個註解來實現測試

 

注意:dataType屬性默認是String,若是要換成其餘,好比int屬性,不能直接寫int或Interger,必定要加上全類名,否則會被解析成string類型。ui

代碼以下:this

 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註解的使用算是入門了,注意,其中仍是有不少細節要注意的,因爲時間問題,沒有一一列舉出來。歡迎你們點評指正。

相關文章
相關標籤/搜索