91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

Swagger2如何在SpringBoot中使用

發布時間:2020-12-16 14:15:32 來源:億速云 閱讀:178 作者:Leah 欄目:開發技術

本篇文章給大家分享的是有關Swagger2如何在SpringBoot中使用,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

一、是什么

  當下很多公司都采取前后端分離的開發模式,前端和后端的工作由不同的工程師完成。在這種開發模式下,維持一份及時更新且完整的 Rest API 文檔將會極大的提高我們的工作效率。傳統意義上的文檔都是后端開發人員手動編寫的,相信大家也都知道這種方式很難保證文檔的及時性,這種文檔久而久之也就會失去其參考意義,反而還會加大我們的溝通成本。而 Swagger 給我們提供了一個全新的維護 API 文檔的方式。

二、為什么要使用它

  1、代碼變更,文檔跟著代碼變、只需要少量的注解Swagger就可以根據代碼自動的生成API文檔,很好的保證了文檔的實時性。

  2、跨語言,Swagger支持40多種語言。

  3、Swagger UI 呈現出來的是一份可以交互的API文檔,我們可以直接在文檔頁面嘗試API的調用,省去了準備復雜的調用參數的過程。

  4、還可以將文檔規范導入相關的工具里面(例如:Postman、SoapUI)、這些工具將會為我們自動地創建自動化測試。

三、怎么用  

1、在項目pom.xml里面加入Swagger2相關的依賴

<!--swagger2配置-->
    <dependency>
      <groupId>io.springfox</groupId>
      <artifactId>springfox-swagger-ui</artifactId>
      <version>2.4.0</version>
    </dependency>
    <dependency>
      <groupId>io.springfox</groupId>
      <artifactId>springfox-swagger2</artifactId>
      <version>2.4.0</version>
    </dependency>
    <dependency>
      <groupId>com.github.xiaoymin</groupId>
      <artifactId>swagger-bootstrap-ui</artifactId>
      <version>1.6</version>
    </dependency>

2、新建Swagger2的配置類

package com.zhouhong.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
/**
 * @ClassName: Swagger2
 * @Description:
 * @Author: 周紅
 * @NickName: Tom-shuhu
 * @Date: Created in 2020/12/15
 **/
@Configuration
@EnableSwagger2
public class Swagger2 {
  //  http://localhost:8088/swagger-ui.html 原路徑
  //  http://localhost:8088/doc.html 原路徑
  //配置swagger2核心配置
  @Bean
  public Docket createRestApi(){
    return new Docket(DocumentationType.SWAGGER_2) //指定api類型位swagger2
      .apiInfo(apiInfo())            //用于定義api文檔匯總信息
        .select().apis(RequestHandlerSelectors
            .basePackage("com.zhouhong.controller")) //指定生成文檔的controller
        .paths(PathSelectors.any())      
        .build();
  }
  private ApiInfo apiInfo(){
    return new ApiInfoBuilder()
        .title("Tom-shushu 的項目接口api") //文檔標題
        .contact(new Contact("周紅", //作者
            "www.zhouhong.icu",  
            "15249239025@163.com")) //聯系人
        .description("Tom-shushu 的項目api接口")//詳細信息
        .version("1.0.0")//文檔版本號
        .termsOfServiceUrl("www.zhouhong.icu")//網站地址
        .build();
  }
}

  文檔配置說明:

  a.為任何接口生成API文檔,這種方式不必在接口方法上加任何注解,方便的同時也會因為沒有添加任何注解所以生成的API文檔也沒有注釋,可讀性不高。

 @Bean
  public Docket createRestApi(){
    return new Docket(DocumentationType.SWAGGER_2)
        .apiInfo(apiInfo())
        .select()
        //為任何接口生成API文檔
        .apis(RequestHandlerSelectors.any())
        .paths(PathSelectors.any())
        .build();
  }

  b.為當前配置的包下controller生成API文檔

.apis(RequestHandlerSelectors.basePackage("com.troila"))

  c.為有@Api注解的Controller生成API文檔

.apis(RequestHandlerSelectors.withClassAnnotation(Api.class))

  d.為有@ApiOperation注解的方法生成API文檔

.apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))

三、常見注解簡介

@Api:修飾整個類,描述Controller的作用
 @ApiOperation:描述一個類的一個方法,或者說一個接口
 @ApiParam:單個參數描述
 @ApiModel:用對象實體來作為入參
 @ApiProperty:用對象接實體收參數時,描述對象的一個字段
 @ApiResponse:HTTP響應其中1個描述
 @ApiResponses:HTTP響應整體描述
 @ApiIgnore:使用該注解忽略這個API
 @ApiError :發生錯誤返回的信息
 @ApiImplicitParam:一個請求參數
 @ApiImplicitParams: 多個請求參數

四、演示(為方便我使用了上面第一種配置)  

1、使用原路徑訪問

Swagger2如何在SpringBoot中使用

  2、原路徑調試

Swagger2如何在SpringBoot中使用

  3、doc模式訪問

Swagger2如何在SpringBoot中使用

4、doc模式調試

Swagger2如何在SpringBoot中使用

以上就是Swagger2如何在SpringBoot中使用,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。

向AI問一下細節

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

AI

连城县| 山阳县| 白河县| 东莞市| 定襄县| 同江市| 仙游县| 日照市| 全椒县| 海淀区| 巴马| 佛冈县| 淅川县| 永新县| 林西县| 富裕县| 双辽市| 吴川市| 淮安市| 贡嘎县| 海伦市| 泗洪县| 邵武市| 商丘市| 盐亭县| 阳西县| 东安县| 惠来县| 泸州市| 萨迦县| 平武县| 沾化县| 南乐县| 麻江县| 和政县| 印江| 行唐县| 抚宁县| 潞西市| 息烽县| 金门县|