最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

springboot如何集成Swagger2

 更新時(shí)間:2020年12月18日 11:29:28   作者:Tom-shushu  
這篇文章主要介紹了springboot集成Swagger2的方法,幫助大家更好的理解和使用springboot框架,感興趣的朋友可以了解下

一、是什么

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

二、為什么要使用它

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

  2、跨語(yǔ)言,Swagger支持40多種語(yǔ)言。

  3、Swagger UI 呈現(xiàn)出來(lái)的是一份可以交互的API文檔,我們可以直接在文檔頁(yè)面嘗試API的調(diào)用,省去了準(zhǔn)備復(fù)雜的調(diào)用參數(shù)的過(guò)程。

  4、還可以將文檔規(guī)范導(dǎo)入相關(guān)的工具里面(例如:Postman、SoapUI)、這些工具將會(huì)為我們自動(dòng)地創(chuàng)建自動(dòng)化測(cè)試。

三、怎么用

  1、在項(xiàng)目pom.xml里面加入Swagger2相關(guān)的依賴

<!--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 的項(xiàng)目接口api") //文檔標(biāo)題
        .contact(new Contact("周紅", //作者
            "www.zhouhong.icu",  
            "15249239025@163.com")) //聯(lián)系人
        .description("Tom-shushu 的項(xiàng)目api接口")//詳細(xì)信息
        .version("1.0.0")//文檔版本號(hào)
        .termsOfServiceUrl("www.zhouhong.icu")//網(wǎng)站地址
        .build();
  }
}

  文檔配置說(shuō)明:

  a.為任何接口生成API文檔,這種方式不必在接口方法上加任何注解,方便的同時(shí)也會(huì)因?yàn)闆]有添加任何注解所以生成的API文檔也沒有注釋,可讀性不高。

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

  b.為當(dāng)前配置的包下controller生成API文檔

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

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

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

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

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

三、常見注解簡(jiǎn)介

@Api:修飾整個(gè)類,描述Controller的作用
 @ApiOperation:描述一個(gè)類的一個(gè)方法,或者說(shuō)一個(gè)接口
 @ApiParam:?jiǎn)蝹€(gè)參數(shù)描述
 @ApiModel:用對(duì)象實(shí)體來(lái)作為入?yún)?
 @ApiProperty:用對(duì)象接實(shí)體收參數(shù)時(shí),描述對(duì)象的一個(gè)字段
 @ApiResponse:HTTP響應(yīng)其中1個(gè)描述
 @ApiResponses:HTTP響應(yīng)整體描述
 @ApiIgnore:使用該注解忽略這個(gè)API
 @ApiError :發(fā)生錯(cuò)誤返回的信息
 @ApiImplicitParam:一個(gè)請(qǐng)求參數(shù)
 @ApiImplicitParams: 多個(gè)請(qǐng)求參數(shù)

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

  1、使用原路徑訪問(wèn)

   2、原路徑調(diào)試

  3、doc模式訪問(wèn)

       4、doc模式調(diào)試

以上就是springboot集成Swagger2的詳細(xì)內(nèi)容,更多關(guān)于springboot集成Swagger2的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • java.net.SocketException: Connection reset 解決方法

    java.net.SocketException: Connection reset 解決方法

    最近糾結(jié)致死的一個(gè)java報(bào)錯(cuò)java.net.SocketException: Connection reset 終于得到解決
    2013-03-03
  • 解決JAVA8 Collectors.toMap value為null報(bào)錯(cuò)的問(wèn)題

    解決JAVA8 Collectors.toMap value為null報(bào)錯(cuò)的問(wèn)題

    這篇文章主要介紹了解決JAVA8 Collectors.toMap value為null報(bào)錯(cuò)的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-01-01
  • Springboot集成百度地圖實(shí)現(xiàn)定位打卡的示例代碼

    Springboot集成百度地圖實(shí)現(xiàn)定位打卡的示例代碼

    本文主要介紹了Springboot集成百度地圖實(shí)現(xiàn)定位打卡的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-02-02
  • Java實(shí)現(xiàn)整合文件上傳到FastDFS的方法詳細(xì)

    Java實(shí)現(xiàn)整合文件上傳到FastDFS的方法詳細(xì)

    FastDFS是一個(gè)開源的輕量級(jí)分布式文件系統(tǒng),對(duì)文件進(jìn)行管理,功能包括:文件存儲(chǔ)、文件同步、文件上傳、文件下載等,解決了大容量存儲(chǔ)和負(fù)載均衡的問(wèn)題。本文將提供Java將文件上傳至FastDFS的示例代碼,需要的參考一下
    2022-02-02
  • 使用Java 壓縮文件打包tar.gz 包的詳細(xì)教程

    使用Java 壓縮文件打包tar.gz 包的詳細(xì)教程

    本文帶領(lǐng)大家學(xué)習(xí)如何使用Java 壓縮文件打包tar.gz 包,主要通過(guò) Apache compress 工具打包,通過(guò)示例代碼給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧
    2021-05-05
  • SpringBoot接收LocalDateTime參數(shù)的方式

    SpringBoot接收LocalDateTime參數(shù)的方式

    這篇文章主要介紹了SpringBoot接收LocalDateTime參數(shù)的方式,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧
    2024-08-08
  • idea項(xiàng)目代碼打包為jar包的超詳細(xì)步驟

    idea項(xiàng)目代碼打包為jar包的超詳細(xì)步驟

    因?yàn)闃I(yè)務(wù)開發(fā)場(chǎng)景需要,將開發(fā)項(xiàng)目中的Java類打成一個(gè)jar包引入到外部工具中,下面這篇文章主要給大家介紹了關(guān)于idea項(xiàng)目代碼打包為jar包的相關(guān)資料,需要的朋友可以參考下
    2023-01-01
  • Java代碼中如何設(shè)置輸出字符集為UTF-8

    Java代碼中如何設(shè)置輸出字符集為UTF-8

    這篇文章主要介紹了Java代碼中設(shè)置輸出字符集為UTF-8,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-05-05
  • Java實(shí)現(xiàn)PDF轉(zhuǎn)為Word文檔的示例代碼

    Java實(shí)現(xiàn)PDF轉(zhuǎn)為Word文檔的示例代碼

    眾所周知,PDF文檔除了具有較強(qiáng)穩(wěn)定性和兼容性外,?還具有較強(qiáng)的安全性,在工作中可以有效避免別人無(wú)意中對(duì)文檔內(nèi)容進(jìn)行修改。本文將分為以下兩部分介紹如何在保持布局的情況下將PDF轉(zhuǎn)為Word文檔,希望對(duì)大家有所幫助
    2023-01-01
  • 在Java的JDBC使用中設(shè)置事務(wù)回滾的保存點(diǎn)的方法

    在Java的JDBC使用中設(shè)置事務(wù)回滾的保存點(diǎn)的方法

    這篇文章主要介紹了在Java的JDBC使用中設(shè)置事務(wù)回滾的保存點(diǎn)的方法,JDBC是Java用于連接各種數(shù)據(jù)庫(kù)的API,需要的朋友可以參考下
    2015-12-12

最新評(píng)論

新宾| 济源市| 松潘县| 益阳市| 阿巴嘎旗| 鄂伦春自治旗| 禹城市| 长乐市| 光泽县| 阳春市| 贺州市| 东港市| 图木舒克市| 中宁县| 团风县| 肃南| 华宁县| 渝北区| 凤阳县| 长宁区| 平武县| 平山县| 曲靖市| 长白| 华容县| 曲靖市| 苏尼特左旗| 大庆市| 麻栗坡县| 巴林右旗| 娄底市| 新龙县| 子洲县| 安义县| 遂川县| 志丹县| 乌兰县| 尼玛县| 靖远县| 泾阳县| 汾阳市|