欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringBoot整合Swagger2的完整過(guò)程記錄

 更新時(shí)間:2021年09月20日 10:48:51   作者:一朵花花  
Swagger是一款RESTful接口的文檔在線自動(dòng)生成、功能測(cè)試功能框架,這篇文章主要給大家介紹了關(guān)于SpringBoot整合Swagger2的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下

前言

springBoot作為微服務(wù)首選框架,為其他服務(wù)提供大量的接口服務(wù)。接口對(duì)接方需要實(shí)時(shí)最近的接口文檔。

swagger可以通過(guò)代碼和注釋自動(dòng)為web項(xiàng)目生成在線文檔,這里使用swagger。

當(dāng) SpringBoot 代碼中 SpringMVC 使用自動(dòng)化配置類 WebMvcAutoConfiguration 時(shí),其整合 Swagger2 的方法如下。

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

一、Spring Boot Web 整合 Swagger2 過(guò)程

Spring Boot Web 項(xiàng)目整合 Swagger2 主要有兩個(gè)過(guò)程:

  1. 添加 Swagger2 相關(guān)依賴。
  2. 配置 Swagger2 配置類。

1.1、添加 Swagger2 相關(guān)依賴

首先要對(duì) Spring Boot Web 的項(xiàng)目,添加 Swagger2 相關(guān)的依賴:

<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 {
   //創(chuàng)建 Docket 的Bean
   @Bean
   public Docket docket(){
       return new Docket(DocumentationType.SWAGGER_2)
         .apiInfo(apiInfo())
         //select() 函數(shù)返回一個(gè) ApiSelectorBuilder實(shí)例用來(lái)控制哪些接口暴露給 Swagger 來(lái)展現(xiàn)
         .select()
         //要掃描的包
         .apis(RequestHandlerSelectors.basePackage("com.example.controller"))
  //選擇API路徑
         .paths(PathSelectors.any())
         .build();
   }
​  //創(chuàng)建文檔的基本信息
   public ApiInfo apiInfo(){
       return new ApiInfoBuilder()
         .title("Swagger UI 的標(biāo)題")
         .description("用restful風(fēng)格寫(xiě)接口")
         .termsOfServiceUrl("")
         .version("1.0")
         .build();
   }
}

二、配置 Swagger2 接口常用注解

2.1、@Api 請(qǐng)求類說(shuō)明

寫(xiě)在controller類定義上方,用于說(shuō)明類的作用。

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

2.2、@ApiOperation 方法的說(shuō)明

寫(xiě)在REST接口上方,用于說(shuō)明方法的作用。

@ApiOperation(
value="創(chuàng)建用戶", 
notes="根據(jù)User對(duì)象創(chuàng)建用戶")

2.3、@ApiImplicitParams 和 @ApiImplicitParam 方法參數(shù)說(shuō)明

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

2.4、@ApiResponses 和 @ApiResponse 方法返回值的說(shuō)明

@ApiResponses:方法返回對(duì)象的說(shuō)明
    @ApiResponse:每個(gè)參數(shù)的說(shuō)明
        code:數(shù)字,例如400
        message:信息,例如"請(qǐng)求參數(shù)沒(méi)填好"
        response:拋出異常的類
-------------------------------------------------------------------
@ApiResponses({
    @ApiResponse(code = 400, message = "權(quán)限不足"),
    @ApiResponse(code = 500, message = "服務(wù)器內(nèi)部異常") }
)

2.5、@ApiModel 和 @ApiModelProperty

@ApiModel 用于JavaBean 上面,表示一個(gè)JavaBean。這種一般用在post創(chuàng)建的時(shí)候,使用 @RequestBody 這樣的場(chǎng)景,請(qǐng)求參數(shù)無(wú)法使用 @ApiImplicitParam 注解進(jìn)行描述的時(shí)候。

@ApiModelProperty 用對(duì)象接收參數(shù)時(shí),描述對(duì)象的一個(gè)字段。

@ApiModel( description = "學(xué)生")
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 :使用該注解忽略這個(gè)API,不對(duì)這個(gè)接口生成文檔。

@ApiError:發(fā)生錯(cuò)誤返回的信息

總結(jié)

到此這篇關(guān)于SpringBoot整合Swagger2的文章就介紹到這了,更多相關(guān)SpringBoot整合Swagger2內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 詳解Java sort()數(shù)組排序(升序和降序)

    詳解Java sort()數(shù)組排序(升序和降序)

    這篇文章主要介紹了詳解Java sort()數(shù)組排序(升序和降序),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • 一篇文章帶你入門(mén)Java變量及整形

    一篇文章帶你入門(mén)Java變量及整形

    這篇文章主要介紹了簡(jiǎn)單了解JAVA變量類型及代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2021-08-08
  • Java代碼統(tǒng)計(jì)網(wǎng)站中不同省份用戶的訪問(wèn)數(shù)

    Java代碼統(tǒng)計(jì)網(wǎng)站中不同省份用戶的訪問(wèn)數(shù)

    這篇文章主要介紹了Java代碼統(tǒng)計(jì)網(wǎng)站中不同省份用戶的訪問(wèn)數(shù) 的相關(guān)資料,非常具有參考借鑒價(jià)值,感興趣的朋友一起學(xué)習(xí)吧
    2016-05-05
  • java中struts2實(shí)現(xiàn)文件上傳下載功能

    java中struts2實(shí)現(xiàn)文件上傳下載功能

    這篇文章主要介紹了java中struts2實(shí)現(xiàn)文件上傳下載功能的方法,以實(shí)例形式分析了struts2文件上傳下載功能的實(shí)現(xiàn)技巧與相關(guān)問(wèn)題,具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2016-05-05
  • 如何解決hibernate一對(duì)多注解懶加載失效問(wèn)題

    如何解決hibernate一對(duì)多注解懶加載失效問(wèn)題

    這篇文章主要介紹了解決hibernate一對(duì)多注解懶加載失效的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • SpringBoot使用Validation進(jìn)行參數(shù)校驗(yàn)的示例詳解

    SpringBoot使用Validation進(jìn)行參數(shù)校驗(yàn)的示例詳解

    在 SpringBoot項(xiàng)目開(kāi)發(fā)中,有一個(gè)觀點(diǎn)是不要相信前端傳入的參數(shù),因?yàn)槟悴恢烙脩羰窃趺床僮魑覀兘涌诘?,所以在后端也需要?duì)參數(shù)進(jìn)行校驗(yàn),這篇文章主要講講我們項(xiàng)目中最常使用的驗(yàn)證方案
    2023-05-05
  • Springboot實(shí)現(xiàn)動(dòng)態(tài)定時(shí)任務(wù)管理的示例代碼

    Springboot實(shí)現(xiàn)動(dòng)態(tài)定時(shí)任務(wù)管理的示例代碼

    最近在做spring boot項(xiàng)目開(kāi)發(fā)中,由于使用@EnableScheduling注解和@Scheduled注解來(lái)實(shí)現(xiàn)的定時(shí)任務(wù),只能靜態(tài)的創(chuàng)建定時(shí)任務(wù),不能動(dòng)態(tài)修改、添加、刪除、啟/停任務(wù),下面通過(guò)本文給大家介紹Springboot實(shí)現(xiàn)動(dòng)態(tài)定時(shí)任務(wù)管理的方法,感興趣的朋友跟隨小編一起看看吧
    2023-07-07
  • java實(shí)現(xiàn)猜數(shù)字游戲

    java實(shí)現(xiàn)猜數(shù)字游戲

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)猜數(shù)字游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-05-05
  • 關(guān)于Selenium的UI自動(dòng)化測(cè)試屏幕截圖功能實(shí)例代碼

    關(guān)于Selenium的UI自動(dòng)化測(cè)試屏幕截圖功能實(shí)例代碼

    今天小編就為大家分享一篇關(guān)于Selenium的UI自動(dòng)化測(cè)試屏幕截圖功能實(shí)例代碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-05-05
  • Java?Spring?事件監(jiān)聽(tīng)詳情解析

    Java?Spring?事件監(jiān)聽(tīng)詳情解析

    這篇文章主要介紹了Java?Spring?事件監(jiān)聽(tīng)詳情解析,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-07-07

最新評(píng)論