我在项目中使用springboot的,文档测试工具使用swagger测试
首先引入jar包
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.7.0</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.7.0</version>
</dependency>
然后配置yml文件
#swagger配置
springfox:
documentation:
swagger:
v2:
path: /api-docs
其次配置swagger配置类
package com config.pubic;
import com.fasterxml.classmate.TypeResolver;
import com .dto.sample.QueryDTO;
import com .pojo.sample.SysMenu;
import com. .pojo.sample.SysRole;
import io.swagger.annotations.ApiOperation;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.ParameterBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.schema.AlternateTypeRule;
import springfox.documentation.schema.ModelRef;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.service.Parameter;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
import java.util.ArrayList;
import java.util.List;
/**
* @author huangzq
*/
@Configuration
@EnableSwagger2
public class SwaggerConfig {
@Bean
public Docket createRestApi() {
List<Parameter> pars = new ArrayList<>();
TypeResolver typeResolver = new TypeResolver();
AlternateTypeRule rule1 = new AlternateTypeRule(typeResolver.resolve(QueryDTO.class), typeResolver.resolve(Object.class));
AlternateTypeRule rule2 = new AlternateTypeRule(typeResolver.resolve(SysRole.class), typeResolver.resolve(Object.class));
AlternateTypeRule rule3 = new AlternateTypeRule(typeResolver.resolve(SysMenu.class), typeResolver.resolve(Object.class));
ParameterBuilder tokenPar = new ParameterBuilder();
tokenPar.name("x-auth-token").description("token").modelRef(new ModelRef("String")).parameterType("header").required(false);
pars.add(tokenPar.build());
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
.paths(PathSelectors.any())
.build()
.alternateTypeRules(rule1,rule2,rule3)
.globalOperationParameters(pars);
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title('平台 API")
.description("接口文档")
.termsOfServiceUrl("http://www.jydw.com")
.contact(new Contact("huangzq", "http://www.jydw.com", "www.baudu.com"))
.version("1.0.0")
.build();
}
}
上面都是使用做的基本准备,下面才是开始使用需要的配置
get请求方式和post请求方式是不同的,还可以采用delete的请求方式等,没有研究这个
get请求方式,设置的swagger请求注解在控制层的方法上
// An highlighted block
var foo = 'bar';
post请求方式,设置swagger注解在请求的实体类上
// An highlighted block
var foo = 'bar';
post请求request参数的方式file上传,swagger注解设置方法
// An highlighted block
var foo = 'bar';