前端同事老是说 swagger 不好用,我用了 knife4j 后,同事爽得不行
@Bean
@ConditionalOnExpression("'{spring.profiles.active}'=='dev' || '${spring.profiles.active}'=='isstest'")
public Docket createRestApi() {
ParameterBuilder tokenPar = new ParameterBuilder();
List<Parameter> pars = new ArrayList<>();
tokenPar.name("x-token").description("token 令牌:Bearer").defaultValue("Bearer ").modelRef(new ModelRef("string")).parameterType("header").required(false).build();
pars.add(tokenPar.build());
return new Docket(DocumentationType.SWAGGER_2)
.select()
.apis(RequestHandlerSelectors.basePackage("com.xy.cloud.search.controller"))
.paths(PathSelectors.any())
.build()
.globalOperationParameters(pars)
.apiInfo(apiInfo());
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("搜索文档中心 API")
.version("v1")
.build();
}
}
常用注解使用:
@Api()
作用在类上,用来标注该类具体实现内容。
参数:
tags:类标签,一般用来写类的名称或作用。(常用)
description:可描述描述该类作用。
@ApiOperation()
用于方法的说明
参数:
value :方法说明(常用)
notes :注释说明
httpMethod : 说明这个方法被请求的方式
response :方法的返回值的类型
@ApiOperationSupport()
(knife4j 增加特性)用于接口方法排序,作者信息描述等。
参数:
order:排序
author:作者信息
@ApiImplicitParam()
对单个参数的说明
参数:
name :参数名。
value : 参数的具体意义,作用。(常用)
required : 参数是否必填。 (常用)
dataType :参数的数据类型。 (常用)
paramType :查询参数类型,这里有几种形式:
类型 作用
path 以地址的形式提交数据
query 直接跟参数完成自动映射赋值
body 以流的形式提交 仅支持 POST
header 参数在 request headers 里边提交
form 以 form 表单的形式提交 仅支持 POST
@ApiModel()
用于描述一个数据模型的信息,即我们常用的实体、VO 类、DTO 类等描述
参数:
value : 数据模型名称。(常用)
description:具体描述
parent:父类
@ApiModelProperty()
用于描述数据模型的属性信息
参数:
value:字段说明 (常用)
name:重写属性名字
dataType:重写属性类型
required:是否必填 (常用)
example:举例说明 (常用)
hidden:隐藏
@ApiIgnore
自动生成接口说明时忽略
类:
@Api(value = "搜索中心中文 api")
方法:
@ApiOperation(value="查询信息",notes="查
询信息",httpMethod="POST")
@ApiImplicitParam(name = "DirectoryDto" ,value ="文档 dto",dataType ="json",required = false)
实体:
@ApiModel("文档 dto 返回实体")
实体属性:
@ApiModelProperty(value = "搜索名称",dataType = "String",required=true)
private String name;
@ApiModelProperty(value = "主键 id",dataType = "String",required=false)
private String id;
@ApiModelProperty(value = "地址",dataType = "String",required=false)
private String address;
评论