在开发过程中使用swagger2接口进行测试有以下几个好处:
1、可以生成文档形式的api并提供个不同的安卓、IOS、前端开发团队。
2、方便后端开发人员进行功能的自测,也方便领导查阅任务量。
3、无需过多冗余的word文档。
下面直接开始配置:
一、pom依赖包
<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>
二、创建一个swagger2的java类
@Configuration
@EnableSwagger2
public class Swagger2 {
/**
* swagger2 的配置文件,这里可以配置swagger2 的一些基本内容,比如扫描的包等等。
* @return
*/
@Bean
public Docket createRestApi(){
//为swagger添加header 参数可供输入
ParameterBuilder userTokenHeader = new ParameterBuilder();
ParameterBuilder userIdHeader = new ParameterBuilder();
List<Parameter> pars = new ArrayList<>();
userTokenHeader.name("headerUserToken").description("userToken")
.modelRef(new ModelRef("string")).parameterType("header")
.required(false).build();
userIdHeader.name("headerUserId").description("userId")
.modelRef(new ModelRef("string")).parameterType("header")
.required(false).build();
pars.add(userTokenHeader.build());
pars.add(userIdHeader.build());
//上面这部分代码可以省去,直接return。 new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select()
// .apis(RequestHandlerSelectors.basePackage("com.imooc.controller"))
// .paths(PathSelectors.any()).build();
return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select()
.apis(RequestHandlerSelectors.basePackage("com.imooc.controller"))
.paths(PathSelectors.any()).build()
.globalOperationParameters(pars);
}
/**
* 构建API 文档的信息
* @return
*/
private ApiInfo apiInfo(){
return new ApiInfoBuilder()
//设置页面标题
.title("使用swagger2 构建短视频后端api接口文档")
//设置联系人
.contact(new Contact("taojin1122","www.csdn.net","1027679890@qq.com"))
//描述
.description("欢迎访问短视频接口文档,这里是描述信息")
//定义版本号
.version("1.0").build();
}
}
三、在controller中添加注解:
1、在类上添加@Api 注解,有value、tags、description等属性。
2、在方法上添加@ApiOperation 注解,有value、notes等属性。
3、也可以在参数中添加@ApiParam 注解。
@ApiParam(required = true,name = “sysDictType”, value = “数据字典类型”)
四,在实体类中添加注解:
1、在类上添加@ApiModel注解,可以添加value、description属性
2、在字段上添加@ApiModelProperty 注解。
hideen 属性:为true表示隐藏该字段。
value属性:字段的值。
name属性:字段名。
example属性:示例。
required属性:为true表示必填。