如何给swagger加请求头的三种方法 @ApiImplicitParam @Header 单方法和全局
场景是这样的,我们自己封装了一个工具类去获取请求头里的东西, 但是在swagger没有自动给一个请求头,所以就得另外配, 不是配在@ApiOperation中.单方法添加请求头@ApiImplicitParamswagger提供的注解, 手动配置,就在controller某个接口方法上,类似@ApiOperation的位置,上下都可以@GetMapping("page")@ApiOperation
·
场景是这样的,我们自己封装了一个工具类去获取请求头里的东西, 但是在swagger没有自动给一个请求头,所以就得另外配, 不是配在@ApiOperation中.
单方法添加请求头
@ApiImplicitParam
swagger提供的注解, 手动配置,就在controller某个接口方法上,类似@ApiOperation的位置,上下都可以
@GetMapping("page")
@ApiOperation(value = "分页搜索")
@ApiImplicitParam(name = "Authorization", value = "Authorization",required = true, dataType = "String",paramType="header")
public Result getPage(long current) {
return null;
}
@RequestHeader
spring提供的注解,类似@RequestParam, 加在请求参数中, 也是可以直接帮你套进来,这个参数还可以拿来用
@GetMapping("page")
@ApiOperation(value = "分页搜索")
public Result getPage(@RequestParam("current") long current,@RequestHeader("userId") long userId) {
return service.getPage(current,userId);
}
全局配置
@Configuration
@EnableSwagger2
@Profile({"local", "dev", "test"})
public class SwaggerConfig {
@Value("${swagger-host}")
private String swaggerHost;
@Bean
public Docket createRestApi() {
ParameterBuilder aParameterBuilder = new ParameterBuilder();
aParameterBuilder.name("Authorization").description("Authorization").modelRef(new ModelRef("string")).parameterType("header").build();
List<Parameter> aParameters = Lists.newArrayList();
aParameters.add(aParameterBuilder.build());
return new Docket(DocumentationType.SWAGGER_2)
.host(swaggerHost)
.select()
.apis(RequestHandlerSelectors.basePackage("com.linnine.demo.controller"))
.paths(PathSelectors.any())
.build()
.apiInfo(apiInfo())
.globalOperationParameters(aParameters);
}
}
更多推荐
已为社区贡献5条内容
所有评论(0)