快速在SpringBoot項目中集成Swagger前端
<dependency> <groupId>cn.gjing</groupId> <artifactId>tools-starter-swagger</artifactId> <version>1.3.0</version> </dependency>
該註解能夠用在任何類
上, 案例中將其用在啓動類上java
@SpringBootApplication @EnableSwagger public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } }
在進行了第二步以後, 已經能夠正常使用Swagger, 各個屬性都提供了默認值, 固然若是須要本身設置一些屬性也能夠, 全部屬性以下:git
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: 許可證地址
@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(); } }
在實際工做中, 每每是多個服務的, 這樣前端須要記住每一個服務的地址, 顯然太麻煩, 因此能夠採用聚合文檔模式, 將多個項目都聚合在一個服務裏, 一般聚合在網關裏, 畢竟每一個服務都是走網關過得, 該模式限於SpringCloud環境
, 且每一個服務都在同一個註冊中心下
, 參考配置以下:github
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
/** * @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(); } }