SpringBoot项目中使用swagger-ui2
1、依赖
<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>
2、配置类(与启动类同级)
@EnableSwagger2
@Configuration
public class SwaggerApp {
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select()
.apis(RequestHandlerSelectors.basePackage("com")).paths(PathSelectors.any()).build();// com为当前包路径
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("swagger-ui2")// 页面标题
.contact(new Contact("自挂东南只", "https://blog.csdn.net/qq_34928194", ""))// 作者
.version("1.0")
.description("swagger测试").build();
}
}
3、接口注解
// 单个参数
@ApiOperation(value = "接口名", notes = "接口信息")
@ApiImplicitParam(name = "userId", required = false, dataType = "java.lang.Long", value = "用户id", paramType = "query")
// ...
// 多个参数
@ApiOperation(value = "接口名", notes = "接口信息")
@ApiImplicitParams({
@ApiImplicitParam(name = "userId", required = false, dataType = "java.lang.Long", value = "用户id", paramType = "query"),
@ApiImplicitParam(name = "customerId", required = false, dataType = "java.lang.Long", value = "客户id", paramType = "query")
})
4、 @ApiImplicitParam参数详情
name:参数
value:参数名
required:是否必填(true/false)
dataType:参数数据类型
java.lang.Long/java.lang.String等
List<Long>代表参数可多个,传参时多个值,隔开即可
paramType:接口参数类型
path:地址参数
query:参数映射绑定
body:post请求,流的形式
header:参数在request header中
form: post请求,form表单形式
5、swagger-ui2接口api路径
http://localhost:8080/swagger-ui.html