中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

SpringBoot整合Swagger2的示例分析

發布時間:2021-09-25 10:43:54 來源:億速云 閱讀:168 作者:小新 欄目:開發技術

小編給大家分享一下SpringBoot整合Swagger2的示例分析,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

前言

springBoot作為微服務首選框架,為其他服務提供大量的接口服務。接口對接方需要實時最近的接口文檔。

swagger可以通過代碼和注釋自動為web項目生成在線文檔,這里使用swagger。

當 SpringBoot 代碼中 SpringMVC 使用自動化配置類 WebMvcAutoConfiguration 時,其整合 Swagger2 的方法如下。

如果 SpringMVC 的配置過程使用了 WebMvcConfigurationSupport;則如下的整合方法不適合。

一、Spring Boot Web 整合 Swagger2 過程

Spring Boot Web 項目整合 Swagger2 主要有兩個過程:

  1. 添加 Swagger2 相關依賴。

  2. 配置 Swagger2 配置類。

1.1、添加 Swagger2 相關依賴

首先要對 Spring Boot Web 的項目,添加 Swagger2 相關的依賴:

<dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
      <groupId>io.springfox</groupId>
      <artifactId>springfox-swagger2</artifactId>
      <version>2.9.2</version>
    </dependency>
    <dependency>
      <groupId>io.springfox</groupId>
      <artifactId>springfox-swagger-ui</artifactId>
      <version>2.9.2</version>
    </dependency>

1.2、配置 Swagger2 配置類

@Configuration
@EnableSwagger2
public class Swagger {
   //創建 Docket 的Bean
   @Bean
   public Docket docket(){
       return new Docket(DocumentationType.SWAGGER_2)
         .apiInfo(apiInfo())
         //select() 函數返回一個 ApiSelectorBuilder實例用來控制哪些接口暴露給 Swagger 來展現
         .select()
         //要掃描的包
         .apis(RequestHandlerSelectors.basePackage("com.example.controller"))
  //選擇API路徑
         .paths(PathSelectors.any())
         .build();
   }
  //創建文檔的基本信息
   public ApiInfo apiInfo(){
       return new ApiInfoBuilder()
         .title("Swagger UI 的標題")
         .description("用restful風格寫接口")
         .termsOfServiceUrl("")
         .version("1.0")
         .build();
   }
}

二、配置 Swagger2 接口常用注解

2.1、@Api 請求類說明

寫在controller類定義上方,用于說明類的作用。

@Api(value = "Swagger Test Control", 
     description = "演示Swagger用法的Control類", 
     tags = "Swagger Test Control Tag")

2.2、@ApiOperation 方法的說明

寫在REST接口上方,用于說明方法的作用。

@ApiOperation(
value="創建用戶", 
notes="根據User對象創建用戶")

2.3、@ApiImplicitParams 和 @ApiImplicitParam 方法參數說明

@ApiImplicitParams:用在請求的方法上,包含一組參數說明
    @ApiImplicitParam:對單個參數的說明      
        name:參數名
        value:參數的漢字說明、解釋
        required:參數是否必須傳
        paramType:參數放在哪個地方
            · header --> 請求參數的獲取:@RequestHeader
            · query --> 請求參數的獲取:@RequestParam
            · path(用于restful接口)--> 請求參數的獲取:@PathVariable
            · body(請求體)-->  @RequestBody User user
            · form(普通表單提交)     
        dataType:參數類型,默認String,其它值dataType="int"       
        defaultValue:參數的默認值
--------------------------------------------------------------------
@ApiImplicitParams({
    @ApiImplicitParam(name = "id", value = "ID", dataType = "Long"),
    @ApiImplicitParam(name = "user", value = "用戶", dataType = "User")
})

2.4、@ApiResponses 和 @ApiResponse 方法返回值的說明

@ApiResponses:方法返回對象的說明
    @ApiResponse:每個參數的說明
        code:數字,例如400
        message:信息,例如"請求參數沒填好"
        response:拋出異常的類
-------------------------------------------------------------------
@ApiResponses({
    @ApiResponse(code = 400, message = "權限不足"),
    @ApiResponse(code = 500, message = "服務器內部異常") }
)

2.5、@ApiModel 和 @ApiModelProperty

@ApiModel 用于JavaBean 上面,表示一個JavaBean。這種一般用在post創建的時候,使用 @RequestBody 這樣的場景,請求參數無法使用 @ApiImplicitParam 注解進行描述的時候。

@ApiModelProperty 用對象接收參數時,描述對象的一個字段。

@ApiModel( description = "學生")
public class Student {
    @ApiModelProperty(value = "主鍵id")
    private String id;
    @ApiModelProperty(value = "名稱", required = true)
    private String name;
    @ApiModelProperty(value = "年齡", required = true)
    private int age;
}

2.6、其他注解

@ApiIgnore :使用該注解忽略這個API,不對這個接口生成文檔。

@ApiError:發生錯誤返回的信息

以上是“SpringBoot整合Swagger2的示例分析”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

栾城县| 工布江达县| 孟州市| 成武县| 务川| 改则县| 普兰县| 长丰县| 贵溪市| 曲麻莱县| 舞阳县| 新绛县| 陇南市| 恩施市| 庆元县| 思南县| 黔西| 沙田区| 汕头市| 定襄县| 峡江县| 乌鲁木齐县| 凤凰县| 贞丰县| 霍州市| 磐石市| 尼玛县| 永宁县| 海伦市| 通化县| 房山区| 玛纳斯县| 汉中市| 中西区| 什邡市| 绥德县| 凤山县| 周宁县| 枣强县| 纳雍县| 宣城市|