SpringBoot整合Swagger

fondtiger發表於2021-09-09

今天我們講一講Swagger這個框架。

一、準備工作

首先說說POM檔案裡面需要加什麼依賴

        <!-- Swagger --&gt
        
            io.springfox
            springfox-swagger-ui
            2.6.1
        
        
            io.springfox
            springfox-swagger2
            2.6.1
        

以上為Swagger需要的依賴
接下來需要一個Swagger配置類

圖片描述

Swagger配置類


以下為配置類程式碼

@Configuration@ComponentScan(basePackages = { "com.test.controller" })//配置controller路徑@EnableSwagger2public class SwaggerConfig {    @Bean
    public Docket createRestApi() {        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.test"))//掃描com路徑下的api文件
                .paths(PathSelectors.any())//路徑判斷,這裡是任何路徑
                .build();
    }    private ApiInfo apiInfo() {        return  new  ApiInfo("測試介面-JAVA版",//大標題
                "測試",//小標題
                "1.0",//版本
                "001",                "老虎",//作者
                "官方網址",//連結顯示文字
                ""//網站連結
        );
    }
}

圖片描述

apiInfo

apiInfo中有一些,作者也沒弄明白的,其實是懶得看了。如果大家知道,請在部落格下方留言,謝謝。

到這兒就算是準備工作完成了,接下來介紹一下Swagger的註解。註解,我只會講比較常用的。就是開發過程中用到的,那些太偏門的,就留著有空慢慢研究吧。

二、Swagger註解

先來看個截圖,根據截圖我們講解一下註解

圖片描述

註解

2.1@ApiModel

該註解用於描述Model類
主要使用:

value: 類的說明
reference: 這個本人也沒搞明白做啥的,有明白的請在部落格留言啊   ~~~~(>_

2.2@ApiModelProperty

該註解主要用於欄位屬性。如果跟用於Controller的註解結合使用,就會有意向不到的效果
主要使用:

value: 欄位說明
dataType: 欄位型別描述(String、Integer之類的)
required: 是否為空;不用的時候,不寫預設為falseexample:欄位示例值,用於Swagger文件頁面展示使用

以上兩個註解主要是用於Model類的。在Swagger頁面上顯示如圖


圖片描述

image.png

圖片描述

image.png

有沒有發現一個問題,第一張圖跟第二張圖少了許多。
沒錯,就是接下來我們要講的用於Controller的註解。

圖片描述

Controller程式碼

@RestController@RequestMapping("test")@Api(value = "測試", description = "測試Controller", tags = "test")public class TestController {    @ApiOperation(value="獲取使用者列表", notes="獲取使用者列表", httpMethod = "POST",
            response = TestUser.class, produces = "application/json")    @RequestMapping("getUserList")    public List getUserList(@RequestBody @ApiParam TestUser tu) {
        List r = new ArrayList();        return r;
    }
}

2.3@Api

value:用於描述Controller,與tags相沖
tags:用於歸納Controller,與value相沖
value跟tags這倆,如果有了tags的話,value則無效,否則value有效。
description: Controller的描述

如圖


圖片描述

image.png

2.4@ApiOperation

主要用於修飾Controller類的方法

value: 方法描述
notes: 方法進一步詳細描述
response: 方法返回值必須是  xxx.classproduces: 方法返回型別 基本是application/json

如圖


圖片描述

image.png

雙擊紅框處,紅框的內容會到橢圓形的位置去。點選左下角的try it out即可發起請求進行測試。



作者:D丶Tiger
連結:


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2508/viewspace-2804476/,如需轉載,請註明出處,否則將追究法律責任。

相關文章