Spring Boot 中swagger2 统一添加请求头/请求参数
程序员文章站
2022-05-03 18:34:31
...
网上很多都是添加请求头的,项目中Filter需要request.getHeader("token")参数,所以记录一下如何添加参数
主要是修改一下配置,其中如果你想改为其他类型也可以,把其中参数类型改一下就好了,我需要添加参数所以就选择query
parameterType("query")类型支持header, cookie, body, query etc
(至于还有什么类型,知道的大佬请留言)
package com.*.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.stereotype.Component;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.ParameterBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.schema.ModelRef;
import springfox.documentation.service.ApiInfo;
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;
/**
* Created by hua
*/
@Configuration
@EnableSwagger2
public class SwaggerTwoConfig {
@Bean
public Docket createRestApi() {
ParameterBuilder ticketPar = new ParameterBuilder();
List<Parameter> pars = new ArrayList<Parameter>();
ticketPar.name("token").description("token")
.modelRef(new ModelRef("string")).parameterType("query")
.required(false).build(); //header中的ticket参数非必填,传空也可以
pars.add(ticketPar.build()); //根据每个方法名也知道当前方法在设置什么参数
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("com.*.controller"))
.paths(PathSelectors.any())
.build().globalOperationParameters(pars);
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("springboot利用swagger构建api文档")
.description("简单优雅的restfun风格")
.termsOfServiceUrl("https://swagger.io/")
.version("1.0")
.build();
}
}
这样每个接口都会添加一个token参数
但是有个缺点,就是每个接口都要添加一个参数.
统一添加的话可以参考
SpringBoot2 配置swagger2并统一加入认证参数
如果需要修改对应的类型,
参考Swagger2 非全局、无需重复输入的Head参数(Token)配置修改对应配置就好了
上面连接里的PathSelectors.regex这个语句是设置过滤规则,不要照着抄啊
推荐阅读
-
spring boot拦截器中获取request post请求中的参数
-
spring boot拦截器中获取request post请求中的参数【转】
-
spring boot拦截器中获取request post请求中的参数【转】
-
Spring Boot 中swagger2 统一添加请求头/请求参数
-
spring boot拦截器中获取request post请求中的参数
-
PHP CURL模拟JQuery的Ajax请求头添加可显示在_SERVER中的参数
-
spring boot 添加自定义拦截器过滤器 Content-Type=application/json 格式的参数请求方式处理
-
Spring Boot - Swagger 自定义请求头参数