Swagger2配置與使用


Swagger2配置與使用

Swagger2介紹

前后端分離開發模式中,api文檔是最好的溝通方式。

Swagger 是一個規范和完整的框架,用於生成、描述、調用和可視化 RESTful 風格的 Web 服務。

  • 及時性 (接口變更后,能夠及時准確地通知相關前后端開發人員)
  • 規范性 (並且保證接口的規范性,如接口的地址,請求方式,參數及響應格式和錯誤信息)
  • 一致性 (接口信息一致,不會出現因開發人員拿到的文檔版本不一致,而出現分歧)
  • 可測性 (直接在接口文檔上進行測試,以方便理解業務)

寫完后端代碼需要調試,swagger很方便解決了這一點:

配置過程:

1、建Module

在ParentProject下創建一個module

2、引入POM

<dependencies>
        <!--swagger-->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <scope>provided </scope>
        </dependency>
    
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <scope>provided </scope>
        </dependency>
    </dependencies>

3、創建swagger的配置類

創建包com.courage.servicebase.config,創建類SwaggerConfig,注解Configuration告訴springboot這是一個配置類,EnableSwagger2啟用Swagger2.

@Configuration
@EnableSwagger2
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("本文檔描述了課程中心微服務接口定義")
                .version("1.0")
                .contact(new Contact("Courage",
                                     "http://Courage.com",
                                     "Courage129@163.com"))
                .build();
    }
}

4、使用

在需要用swagger的模塊中的pom文件以依賴的形式引入swagger這個module

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

常用API

Api注解

可以用來標記當前Controller的功能。

ApiOperation注解

用來標記一個方法的作用。

ApiImplicitParam注解

用來描述一個參數,可以配置參數的中文含義,也可以給參數設置默認值,這樣在接口測試的時候可以避免手動輸入。

如果有多個參數,則需要使用多個@ApiImplicitParam注解來描述,多個@ApiImplicitParam注解需要放在一

ApiImplicitParams注解中。

需要注意的是,@ApiImplicitParam注解中雖然可以指定參數是必填的,但是卻不能代替

RequestParam(required = true),

前者的必填只是在Swagger2框架內必填,拋棄了Swagger2,這個限制就沒用了,所以假如開發者需要指定一個參數必填,@RequestParam(required = true)注解還是不能省略。

如果參數是一個對象(例如上文的更新接口),對於參數的描述也可以放在實體類中。例如下面一段代碼:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM