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

Springboot整合Swagger2和Swagger3全過程

 更新時(shí)間:2024年07月13日 10:45:31   作者:花果水蓮  
這篇文章主要介紹了Springboot整合Swagger2和Swagger3全過程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

一、Swagger2的作用

手寫Api文檔的幾個(gè)痛點(diǎn):

  • 文檔需要更新的時(shí)候,需要再次發(fā)送一份給前端,也就是文檔更新交流不及時(shí)。
  • 接口返回結(jié)果不明確
  • 不能直接在線測(cè)試接口,通常需要使用工具,比如postman
  • 接口文檔太多,不好管理

Swagger也就是為了解決這個(gè)問題,當(dāng)然也不能說Swagger就一定是完美的,當(dāng)然也有缺點(diǎn),最明顯的就是代碼移入性比較強(qiáng)。

二、pom依賴:springfox-swagger2、springfox-swagger-ui

<dependency>
     <groupId>io.springfox</groupId>
     <artifactId>springfox-swagger2</artifactId>
     <version>${swagger2.version}</version>
</dependency>
<dependency>
     <groupId>io.springfox</groupId>
     <artifactId>springfox-swagger-ui</artifactId>
     <version>${swagger2.version}</version>
</dependency>

三、Swagger2配置類

@Configuration
@EnableSwagger2 //開啟Swagger2
public class SwaggerConfig {

    @Bean
    public Docket webApiConfig(){
        return new Docket(DocumentationType.SWAGGER_2)
                .groupName("webApi")
                .apiInfo(webApiInfo())
                .select()
                .paths(Predicates.not(PathSelectors.regex("/admin/.*")))
                .paths(Predicates.not(PathSelectors.regex("/error.*")))
                .build();
    }

    private ApiInfo webApiInfo(){
        return new ApiInfoBuilder()
                .title("在線教育API文檔")
                .description("本文檔描述了在線教育微服務(wù)接口定義")
                .version("0.0.1-SNAPSHOT")
                .contact(new Contact("java","http://atguigu.com","123456@qq.com"))
                .build();
    }
}

有這兩步就已經(jīng)完成swagger的基本功能,可以訪問http://localhost:{port}/swagger-ui.html,來實(shí)現(xiàn)調(diào)用controller中的接口。如

但實(shí)際上,我們依然可以給controller的類、接口、接口入?yún)⑻砑幼⒔猓?以實(shí)現(xiàn)功能說明的作用。

  • @Api:修飾整個(gè)類,描述Controller的作用
  • @ApiOperation:描述一個(gè)類的一個(gè)方法,或者說一個(gè)接口
  • @ApiParam:?jiǎn)蝹€(gè)參數(shù)描述
  • @ApiModel:用對(duì)象來接收參數(shù)
  • @ApiProperty:用對(duì)象接收參數(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ù)

四、Controller類添加Swagger的注解

@Api(description = "講師管理") //修飾整個(gè)類,描述Controller的作用
@RestController
@RequestMapping("/eduservice/teacher")
public class EduTeacherController {

    @Autowired
    private EduTeacherService eduTeacherService;

    @ApiOperation("查找全部功能")
    @GetMapping("/findall")
    public List<EduTeacher> findAll(){
        List<EduTeacher> list = eduTeacherService.list();
        return list;
    }

    @ApiOperation("邏輯刪除功能")
    @DeleteMapping("{id}") //{id}表示id值通過路徑傳遞
    public void removeById(@PathVariable("id") String id){
        eduTeacherService.removeById(id);
    }
}

再次訪問Swagger-ui,效果如下

五、整合Swagger3配置類

@EnableSwagger2
@Configuration
public class SwaggerConfig {

    @Bean
    public Docket webApiConfig(){
        return new Docket(DocumentationType.SWAGGER_2)
                .groupName("webApi")
                .apiInfo(webApiInfo())
                .select()
                //PathSelectors.regex("/error.*")選擇器,negate()表示取反
                .paths(PathSelectors.regex("/error.*").negate())
                .build();
    }

    private ApiInfo webApiInfo(){
        return new ApiInfoBuilder()
                .title("在線教育API文檔")
                .description("本文檔描述了在線教育微服務(wù)接口定義")
                .version("1.0-SNAPSHOT")
                .build();
    }
}

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • java ThreadPool線程池的使用,線程池工具類用法說明

    java ThreadPool線程池的使用,線程池工具類用法說明

    這篇文章主要介紹了java ThreadPool線程池的使用,線程池工具類用法說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-10-10
  • mybatis-plus開啟sql打印的三種方式總結(jié)

    mybatis-plus開啟sql打印的三種方式總結(jié)

    這篇文章主要給大家介紹了mybatisplus開啟sql打印的三種方式,文章通過代碼示例介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的參考價(jià)值,需要的朋友可以參考下
    2023-11-11
  • Java全面解析XML格式串(JDOM解析)

    Java全面解析XML格式串(JDOM解析)

    下面小編就為大家?guī)硪黄狫ava全面解析XML格式串(JDOM解析)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-06-06
  • Java?九宮重排(滿分解法)

    Java?九宮重排(滿分解法)

    本文主要介紹了Java?九宮重排(滿分解法),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • 解決DataOutputStream亂碼的問題

    解決DataOutputStream亂碼的問題

    這篇文章主要介紹了DataOutputStream亂碼問題的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • Java流程控制之選擇結(jié)構(gòu)

    Java流程控制之選擇結(jié)構(gòu)

    這篇文章主要介紹了Java流程控制之選擇結(jié)構(gòu),主要以if單選擇結(jié)構(gòu)、if雙選擇結(jié)構(gòu)、if多選擇結(jié)構(gòu)、嵌套的if結(jié)構(gòu)、switch多選擇結(jié)構(gòu)多種選擇結(jié)構(gòu)展開全文。需要的小伙伴可以參考一下
    2021-12-12
  • 一文詳解Java如何系統(tǒng)地避免空指針問題

    一文詳解Java如何系統(tǒng)地避免空指針問題

    新手Java開發(fā)總是經(jīng)常空指針檢查,甚至某些老手也會(huì)犯這樣的問題,所以這篇文章小編就帶大家一起來看看如何系統(tǒng)地避免空指針問題,希望對(duì)大家有所幫助
    2024-01-01
  • JAVA實(shí)現(xiàn)打印ascii碼表代碼

    JAVA實(shí)現(xiàn)打印ascii碼表代碼

    這篇文章主要介紹了JAVA實(shí)現(xiàn)打印ascii碼表代碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • java web圖片上傳和文件上傳實(shí)例

    java web圖片上傳和文件上傳實(shí)例

    本篇文章主要介紹了java web圖片上傳和文件上傳實(shí)例,具有一定的參考價(jià)值,有需要的可以了解一下。
    2016-11-11
  • netty中的ByteBuf源碼詳解

    netty中的ByteBuf源碼詳解

    這篇文章主要介紹了netty中的ByteBuf源碼詳解,ByteBuf,顧名思義,就是字節(jié)緩沖區(qū),是Netty中非常重要的一個(gè)組件,某些場(chǎng)景下性能不是太好,netty開發(fā)團(tuán)隊(duì)重新設(shè)計(jì)了ByteBuf用以替代原生ByteBuffer,需要的朋友可以參考下
    2023-11-11

最新評(píng)論