@Profile("test")//配置只允许在测试的时候暴露所有的接
@Configuration
@EnableSwagger2
@ConditionalOnProperty(prefix = "swagger",value = {"enabled"},havingValue = "true")
@Profile("test")//配置只允许在测试的时候暴露所有的接口
public class Swagger2 extends WebMvcConfigurerAdapter {
/* @Api:修饰整个类,描述Controller的作用
@ApiOperation:描述一个类的一个方法,或者说一个接口
@ApiParam:单个参数描述
@ApiModel:用对象来接收参数
@ApiProperty:用对象接收参数时,描述对象的一个字段
@ApiResponse:HTTP响应其中1个描述
@ApiResponses:HTTP响应整体描述
@ApiIgnore:使用该注解忽略这个API
@ApiError :发生错误返回的信息
@ApiParamImplicitL:一个请求参数
@ApiParamsImplicit 多个请求参数
*/
@Bean
public Docket createRestApi() {
ParameterBuilder parameterBuilder = new ParameterBuilder();
List<Parameter> parameters = new ArrayList<Parameter>();
parameterBuilder.name("X-Authorization")
.description("token")
.modelRef(new ModelRef("string"))
.parameterType("header")
.required(false).build();
parameters.add(parameterBuilder.build());
return new Docket(DocumentationType.SWAGGER_2)
.genericModelSubstitutes(DeferredResult.class)
.useDefaultResponseMessages(false)
.forCodeGeneration(true)
.pathMapping("")
.apiInfo(apiInfo())//生产环境 要关闭
.select()
//.apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
.apis(RequestHandlerSelectors.basePackage("com.tengtu.demo.APPController"))//扫描接口的包路径,
.paths(PathSelectors.any())
.build()
.globalOperationParameters(parameters)
.apiInfo(apiInfo());
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("标题:伊伊app接口管理文档")
.description("简单优雅的restfun风格,http://blog.youkuaiyun.com/forezp")
.termsOfServiceUrl("http://blog.youkuaiyun.com/forezp")
.version("1.0")
.build();
}
}