Maven
除必需依赖外,仍需要 sping annotation 等包来完成配置
1 2 3 4 5 6 7 8 9 10 11 12
| <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>
|
使用
1. 配置类
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
| @Configuration @EnableSwagger2 public class SwaggerConfig {
@Bean public Docket createRestApi() { ParameterBuilder ticketPar = new ParameterBuilder(); List<Parameter> pars = new ArrayList<>(); ticketPar.name("Authorization") .description("token") .modelRef(new ModelRef("string")) .parameterType("header") .defaultValue("Bearer ") .required(true) .build(); pars.add(ticketPar.build()); return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) .groupName("data-visual-client") .select() .apis(RequestHandlerSelectors.basePackage("com.common.controller")) .paths(PathSelectors.any()) .build() .globalOperationParameters(pars); }
public ApiInfo apiInfo() {
Contact contact = new Contact("Glett","https://www.baidu.com/","google@gmail.com");
return new ApiInfoBuilder().title("数据可视化分析平台-接口文档") .description("提供数据可视化分析平台下所有子模块的所有接口") .version("v1.0") .termsOfServiceUrl("https://www.baidu.com/") .contact(contact) .license("Apache 2.0") .licenseUrl("https://www.apache.org/licenses/LICENSE-2.0") .build(); }
}
|
2. 注解
@Api
: 用在请求的类上, 表示对类的说明
tags
: 说明该类的作用, 非空时将覆盖 value 的值
value
: 描述类的作用
@ApiOperation
: 用在请求的方法上, 说明方法的用途、作用
tags
: 操作标签, 非空时将覆盖value的值
value
: 操作标签, 非空时将覆盖value的值
notes
: 方法的备注说明
httpMethod
: 指定 HTTP 方法
response
: 响应类型, 即返回对象
@ApiImplicitParams
: 用在请求的方法上, 表示一组参数说明
@ApiImplicitParam
: 用在 @ApiImplicitParams
注解中, 指定一个请求参数的各个方面
name
: 参数名
value
: 参数的说明、解释
required
: 参数是否必须传
paramType
: 参数放在哪个地方
header
: 请求参数的获取用 @RequestHeader
query
: 请求参数的获取用 @RequestParam
path
: 请求参数的获取用 @PathVariable
body
form
dataType
: 参数类型, 默认 string
defaultValue
: 参数的默认值
@ApiResponses
: 用在请求的方法上, 表示一组响应
@ApiResponse
: 用在 @ApiResponses
中, 一般用于表达一个错误的响应信息
code
: 数字, 例如400
message
: 信息, 例如”请求参数没填好”
response
: 抛出异常的类
@ApiModel
: 用于响应类上, 表示一个返回响应数据的信息, 一般用在 post 创建的时候, 使用 @RequestBody
这样的场景, 请求参数无法使用 @ApiImplicitParam
注解进行描述时
@ApiModelProperty
: 用在属性上, 描述响应类的属性
1 2 3 4 5
| @ApiImplicitParams({ @ApiImplicitParam(name = "userName", paramType = "query", dataType = "string", value = "用户名"), @ApiImplicitParam(name = "currentPage", paramType = "query", dataType = "int", defaultValue = "1", value = "当前页"), @ApiImplicitParam(name = "pageSize", paramType = "query", dataType = "int", defaultValue = "10", value = "每页数量"), })
|