-
导入依赖
<dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.9.2</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.9.2</version> </dependency>
这里注意 swagger2 版本与3 版本使用相差较大,这里采用2版本
-
编写控制器
@RestController public class HelloController { @RequestMapping("/hello") public String hello() { return "hello-nq"; } }
-
开启swagger
@Configuration @EnableSwagger2 // 开启swagger public class SwaggerConfig { }
-
访问
http://localhost:8080/swagger-ui.html
5
-
详细配置swagger–ApiInfo 基础配置
@Configuration
@EnableSwagger2 // 开启swagger
public class SwaggerConfig {
// 配置docket实例
@Bean
public Docket docket() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo()); // 默认配置信息
}// 配置swagger信息 private ApiInfo apiInfo() { Contact contact = new Contact("nq", "http://nq.com", "1624197826@qq.com"); return new ApiInfo( "swaggershuo说明", "测试", "v1.1", "http://myweb.com", contact, "Apache 2.0", "http://www.apache.org/licenses/LICENSE-2.0", new ArrayList<>() ); }
}
-
详细配置swagger–扫描开关接口 高级配置
@Configuration @EnableSwagger2 // 开启swagger public class SwaggerConfig { // 配置docket实例 @Bean public Docket docket() { return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo())// 默认配置信息 .select() // 配置扫描包 RequestHandlerSelectors 可以自定义配置扫描规则, no any 根据注解配置 .apis(RequestHandlerSelectors.basePackage("com.nq.controller")) // 过滤指定路径 //.paths(PathSelectors.ant("/com/**")) .build(); } // 配置swagger信息 private ApiInfo apiInfo() { Contact contact = new Contact("nq", "http://nq.com", "1624197826@qq.com"); return new ApiInfo( "swaggershuo说明", "测试", "v1.1", "http://myweb.com", contact, "Apache 2.0", "http://www.apache.org/licenses/LICENSE-2.0", new ArrayList<>() ); } }
-
详细配置swagger–是否开启swagger 高级配置
@Bean public Docket docket() { return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo())// 默认配置信息 .enable(false) // false 将会让swagger失效 .select() // 配置扫描包 RequestHandlerSelectors 可以自定义配置扫描规则, no any 根据注解配置 .apis(RequestHandlerSelectors.basePackage("com.nq.controller")) // 过滤指定路径 //.paths(PathSelectors.ant("/com/**")) .build(); }
-
详细配置swagger–分组配置 高级配置
分组也就是需要多个Docket实例
@Configuration @EnableSwagger2 // 开启swagger public class SwaggerConfig { @Bean public Docket docket1(){ return new Docket(DocumentationType.SWAGGER_2).groupName("a"); } @Bean public Docket docket2(){ return new Docket(DocumentationType.SWAGGER_2).groupName("b"); } // 配置docket实例 @Bean public Docket docket(Environment env) { // 判断是否为开发环境 return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo())// 默认配置信息 .select() // 配置扫描包 RequestHandlerSelectors 可以自定义配置扫描规则, no any 根据注解配置 .apis(RequestHandlerSelectors.basePackage("com.nq.controller")) // 过滤指定路径 //.paths(PathSelectors.ant("/com/**")) .build(); } // 配置swagger信息 private ApiInfo apiInfo() { Contact contact = new Contact("nq", "http://nq.com", "1624197826@qq.com"); return new ApiInfo( "swaggershuo说明", "测试", "v1.1", "http://myweb.com", contact, "Apache 2.0", "http://www.apache.org/licenses/LICENSE-2.0", new ArrayList<>() ); } }
-
详细配置swagger–注解配置 高级配置
- 给类和属性配置说明
@ApiModel("用户实体类") // 配置说明 public class User { @ApiModelProperty("用户名") // 配置属性说明 private String name; @ApiModelProperty("密码") private String password; }
@GetMapping("/user") public User user() { return new User(); }
-
给请求接口类、方法、参数加入说明
@ApiOperation("hello控制器") @RestController public class HelloController { @ApiOperation("hello1调用接口") @RequestMapping("/hello1") public String hello1(@ApiParam("用户名") String username) { return "hello-nq" + username; } }