首頁  >  文章  >  Java  >  SpringBoot 整合 Swagger的方法介紹(附程式碼)

SpringBoot 整合 Swagger的方法介紹(附程式碼)

不言
不言轉載
2019-03-21 10:11:013100瀏覽

這篇文章帶給大家的內容是關於SpringBoot 整合 Swagger的方法介紹(附程式碼),有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。

什麼是Swagger

  1. Swagger 可以產生一個具有互動性的API控制台,開發者可以用來快速學習並嘗試API
  2. Swagger 可以產生客戶端SDK程式碼用於各種不同的平台上的實作
  3. Swagger 檔案可以在許多不同的平台上從程式碼註解中自動產生
  4. Swagger 有一個強大的社群

依賴導入

<!-- Swagger -->
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger2</artifactId>
    <version>2.4.0</version>
</dependency>
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger-ui</artifactId>
    <version>2.4.0</version>
</dependency>

加入配置

swagger:
  title: 项目 API
  description: SpringBoot 集成 Swagger 项目 API
  version: 1.0
  terms-of-service-url: http://www.baidu.com/
  base-package: cn.anothertale.springbootshiro  # 这一项指定需要生成 API 的包,一般就是 Controller
  contact:
    name: taohan
    url: http://www.baidu.ccom/
    email: 1289747698@qq.com

建立Swagger Config

package cn.anothertale.springbootshiro.config.swagger;

import lombok.Getter;
import lombok.Setter;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.context.properties.ConfigurationProperties;
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;

/**
 * description: swagger 配置中心
 *
 * @author: taohan
 * @date: 2019年03月20日
 * @time: 16:52
 */
@Getter
@Setter
@Configuration
@EnableSwagger2
@ConditionalOnClass(EnableSwagger2.class)
@ConfigurationProperties(prefix = "swagger")
public class SwaggerConfig {

    /**
     * API 接口包路径
     */
    private String basePackage;

    /**
     * API 页面标题
     */
    private String title;

    /**
     * API 描述
     */
    private String description;

    /**
     * 服务条款地址
     */
    private String termsOfServiceUrl;

    /**
     * 版本号
     */
    private String version;

    /**
     * 联系人
     */
    private Contact contact;

    @Bean
    public Docket api() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()
                .apis(RequestHandlerSelectors.basePackage(basePackage))
                .paths(PathSelectors.any())
                .build();
    }

    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title(title)
                .description(description)
                .termsOfServiceUrl(termsOfServiceUrl)
                .version(version)
                .contact(contact)
                .build();
    }
}

#透過註解標示API

Swagger 預設根據配置的包,掃描所有介面並產生對應的API 描述和參數資訊。

常用註解及對應屬性如下:

  • @Api (描述一個API 類,標註在Controller 上)

    1. value:url 的路徑值
    2. tags:如果設定該值,value 的值會被覆寫
    3. description :API 的資源描述
    4. basePath:基本路徑可以不設定
    5. produces:例如:application/json, application/xml類似RequestMapping 對應屬性
    6. consumes:例如:application/json, application/xml
    7. ##authorizations:高階特性認證時設定






    1. hidden:是否在文件中隱藏
    2. #@ApiOperation (用在Controller 方法上,說明方法的作用)
    3. value:
    4. url 的路徑值
    5. tags:
    6. 如果設定該值,value 的值會被覆寫
    7. description:
      對API 資源的描述
    #basePath:
  • 基本路徑可以不設定
  • ##position :如果配置多個API 想要改變展示位置,可透過該屬性設定

      response:
    1. 傳回的物件##responseContainer:
      這些物件是有效的List、Set、Map,其他無效
    httpMethod:
  • 請求方式
  • code:HTTP 狀態碼,預設200

    1. extensions:擴充屬性
  • @ApiImplicitParams
(用在Controller 方法上,描述一組請求參數)

SpringBoot 整合 Swagger的方法介紹(附程式碼)

value:

ApiImplicitParam 數組,見下一註解################### #####@ApiImplicitParam###(描述一個請求參數)#############name:###參數名稱#########value:###參數值#########defaultValue:###參數預設值#########required:###是否必須,預設false#########access:## #不過多描述#########example:###範例########################@ApiResponses### (描述一組回應)############value:###ApiResponse數組,見下一註解###################### ##@ApiResponse### (描述一個回應)############code:###HTTP 的狀態碼########message:###描述訊息# ##############最後,可以在瀏覽器中輸入http://localhost:8080/swagger-ui.html 即可存取! ######### ###

以上是SpringBoot 整合 Swagger的方法介紹(附程式碼)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:cnblogs.com。如有侵權,請聯絡admin@php.cn刪除