swagger
官网
借助 Swagger 开源和专业工具集,为用户,团队和企业简化 API 开发。
依赖
在项目中使用 Swagger 需要 springbox
- swagger2
- ui
SpringBoot 集成 Swagger
快速入门
-
新建 SpringBoot 项目
-
mvnrepository.com 仓库搜索 springfox-swagger,找到坐标 :Springfox Swagge UI、Springfox Swagger2
1<!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger2 --> 2<dependency> 3 <groupId>io.springfox</groupId> 4 <artifactId>springfox-swagger2</artifactId> 5 <version>2.9.2</version> 6</dependency> 7 8<!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui --> 9<dependency> 10 <groupId>io.springfox</groupId> 11 <artifactId>springfox-swagger-ui</artifactId> 12 <version>2.9.2</version> 13</dependency> 14
-
编写一个 Hello 工程
1package com.kuang.swagger.controller; 2 3import org.springframework.web.bind.annotation.GetMapping; 4import org.springframework.web.bind.annotation.RequestMapping; 5import org.springframework.web.bind.annotation.RestController; 6 7@RestController 8public class HelloController { 9 10 @RequestMapping(value = "/hello") 11 public String hello() { 12 return "hello"; 13 } 14}
-
集成 Swagger
1package com.kuang.swagger.config; 2 3import org.springframework.context.annotation.Configuration; 4import springfox.documentation.swagger2.annotations.EnableSwagger2; 5 6@Configuration 7@EnableSwagger2 //开启Swagger2 8public class SwaggerConfig { 9 10}
-
测试运行:http://localhost:8080/swagger-ui.html
配置 Swagger
Swagger 的 bean 实例 Docket;
1package com.kuang.swagger.config;
2
3import org.springframework.context.annotation.Bean;
4import org.springframework.context.annotation.Configuration;
5import springfox.documentation.builders.RequestHandlerSelectors;
6import springfox.documentation.service.ApiInfo;
7import springfox.documentation.service.Contact;
8import springfox.documentation.spi.DocumentationType;
9import springfox.documentation.spring.web.plugins.Docket;
10import springfox.documentation.swagger2.annotations.EnableSwagger2;
11
12import java.util.ArrayList;
13
14@Configuration
15@EnableSwagger2 //开启Swagger2
16public class SwaggerConfig {
17
18 //配置了swagger的Docket的Bean实例
19 @Bean
20 public Docket docket() {
21 return new Docket(DocumentationType.SWAGGER_2)
22 .apiInfo(apiInfo())
23 //是否启动swagger,如果为false,则swagger不能再浏览器中访问
24 .enable(false)
25 .select()
26 //扫描接口的方式
27 //basePackage 指定要扫描的包
28 //any():扫描全部
29 //none():不扫描
30 //withClassAnnotation:扫描类上的注解,参数是一个注解的反射对象 HelloController.class
31 //withMethodAnnotation:扫描方法上的注解 GetMapping.class
32 .apis(RequestHandlerSelectors.basePackage("com.kuang.swagger.controller"))
33 .build();
34 }
35
36 //配置swagger信息= apiInfo
37 private ApiInfo apiInfo(){
38 Contact contact = new Contact("王超", "123", "123");
39 return new ApiInfo(
40 "howard的SwaggerAPI文档",
41 "作者是Howard",
42 "v1.0",
43 "http://abc1024.pub",
44 contact,
45 "Apache 2.0",
46 "http://www.apache.org/licenses/LICENSE-2.0",
47 new ArrayList()
48 );
49
50 }
51
52}
53
配置文件
1application.properties
2spring.profiles.active=dev
3
4application-dev.properties
5server.port=8081
6
7application-pro.properties
8server.port=8082
访问:http://localhost:8081/swagger-ui.html