SpringBoot快速集成Swagger

快速在SpringBoot項目中集成Swagger前端

使用方法

1. 導入依賴

<dependency>
     <groupId>cn.gjing</groupId>
     <artifactId>tools-starter-swagger</artifactId>
     <version>1.3.0</version>
</dependency>

2. 使用註解

該註解能夠用在任何類上, 案例中將其用在啓動類上java

@SpringBootApplication
@EnableSwagger
public class DemoApplication {
    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
}

3. 配置

在進行了第二步以後, 已經能夠正常使用Swagger, 各個屬性都提供了默認值, 固然若是須要本身設置一些屬性也能夠, 全部屬性以下:git

  • yml格式
swagger:
  contact:
    email: 聯繫郵箱
    name: 聯繫人暱稱
    url: 聯繫人地址
  title: 標題
  description: 描述
  base-package: 接口所在包路徑
  path-type: 接口選擇規則類型, 共分爲: ALL(全部接口), REGEX(符合正則), ANT(符合路徑)三個類型, 默認爲ALL類型
  path-pattern: 接口匹配規則,在path-type類型不爲 "ALL" 的狀況下必須設置,不然拋非法參數異常
  exclude-pattern: 排除路徑,默認使用正則表達式方式,可在pathType設置爲其餘類型(pathType類型爲ALL時默認走正則)
  terms-of-service-url: 服務條款
  license: 許可證
  license-url: 許可證地址
  • JavaBean方式
@Configuration
public class DemoConfig {
    @Bean
    public SwaggerBean swaggerBean() {
        return SwaggerBean.builder()
                .basePackage("com.xxx.xxx")
                .pathType(PathType.ALL)
                .title("標題")
                .termsOfServiceUrl("http://127.0.0.1")
                .license("XXXX")
                .licenseUrl("http://xxx.xx.xx")
                .description("描述")
                .build();
    }
}

4. 聚合文檔

在實際工做中, 每每是多個服務的, 這樣前端須要記住每一個服務的地址, 顯然太麻煩, 因此能夠採用聚合文檔模式, 將多個項目都聚合在一個服務裏, 一般聚合在網關裏, 畢竟每一個服務都是走網關過得, 該模式限於SpringCloud環境, 且每一個服務都在同一個註冊中心下, 參考配置以下:github

  • yml格式
server:
  port: 8080
spring:
  application:
    name: zuul-server
eureka:
  client:
    service-url:
      defaultZone: http://localhost:8761/eureka/
zuul:
  routes:
    projectA:
      serviceId: web1
      path: /demo/**
swagger:
  resources:
    enable: 是否開啓聚合模式, 默認 False
    register-me: 當前項目的文檔是否也要加入聚合, 默認 true
    # 服務列表
    service-list:
      - projectA: 這裏能夠隨便定義
          view: 下拉選擇時展現的名字, 通常用於標識對應文檔的名字
          service: 跟隨zuul網關路由的path而定,如上爲:/demo/**,那麼這裏應該填demo
      - projectB:
          view: 項目b
          service: demo
  • JavaBean方式
/**
 * @author Gjing
 **/
@Configuration
public class GatewayConfig {
    @Bean
    public SwaggerResources swaggerResources() {
        List<Map<String, SwaggerService>> serviceList = new ArrayList<>();
        Map<String, SwaggerService> service = new HashMap<>();
        service.put("projectA", SwaggerService.builder().view("項目A").service("demo").build());
        serviceList.add(service);
        return SwaggerResources.builder()
                .enable(true)
                .registerMe(true)
                .serviceList(serviceList)
                .build();
    }
}

更多信息可前往GitHub: tools-starter-swagger, 喜歡的小夥伴能夠關注哦!

相關文章
相關標籤/搜索