如何在Swagger UI发送请求时自动注入自定义请求头?
解决方案:通过OpenAPI Bean配置自动添加请求头
不需要额外实现过滤器或拦截器,直接修改你现有的OpenAPI Bean就能完成需求。具体做法是添加一个全局请求头参数,设置固定默认值并隐藏该参数,让Swagger UI自动携带它发送请求。
修改后的代码如下:
@Bean public OpenAPI customOpenAPI(@Value("${springdoc.version}") String appVersion) { // 定义硬编码的请求头参数 Parameter testHeader = new Parameter() .name("test-header") .in("header") .schema(new StringSchema()) .required(false) .defaultValue("{\"username\":\"swagger\", \"email\":\"dummy@email\"}") .hidden(true); // 隐藏参数,避免用户手动修改或添加 return new OpenAPI() .info(new Info().title("Person API").version(appVersion) .license(new License().name("Apache 2.0").url("http://springdoc.org"))) .addGlobalRequestParameters(List.of(testHeader)); };
关键说明:
addGlobalRequestParameters方法会将该请求头应用到所有API接口上hidden(true)会让Swagger UI不显示这个参数,用户完全不需要手动操作defaultValue直接设置为指定的JSON字符串,确保请求自动携带该值
内容的提问来源于stack exchange,提问作者Suule
相关产品推荐
相关产品推荐

