使用开放 API 配置设置全局参数?

2024-01-07

我在用Spring Boot REST OpenAPI 3规格。在此示例中,我希望全局设置标题(Custom-Header-Version=v1)我想在向每个端点发出请求时传递它。

现在的问题是我已经100 个 REST 端点对于每个端点我需要不断添加@Parameter(in = ParameterIn.HEADER .....,这个配置,而不是我希望在全局范围内设置它。如果我们在OpenAPI中可以做到这一点,有什么办法吗?

有没有办法从 Spring doc ui 中删除 SmartBear 徽标?

@RestController
@RequestMapping("/api")
@Tag(name = "contact", description = "the Contact API")
public class HelloController {

    @Operation(summary = "Find Contacts by name", description = "Name search by %name% format", tags = {"contact"})
    @ApiResponses(value = {
            @ApiResponse(responseCode = "200", description = "successful operation", content = @Content(array = @ArraySchema(schema = @Schema(implementation = PersonDTO.class))))})
    @Parameter(in = ParameterIn.HEADER, description = "Custom Header To be Pass", name = "Accept-version"
            , content = @Content(schema = @Schema(type = "string", defaultValue = "v1", allowableValues = {"v1"}, implementation = PersonDTO.class)))
    @GetMapping(value = "/contacts", headers = {"Custom-Header-Version=v1"})
    public ResponseEntity<List<PersonDTO>> findAll(
            @Parameter(description = "Page number, default is 1") @RequestParam(value = "page", defaultValue = "1") int pageNumber,
            @Parameter(description = "Name of the contact for search.") @RequestParam(required = false) String name) {

            return null;
        }
}

你可以尝试下面的代码。在上面提到的代码中添加了 .example("v1")ouled saber

@Component
public class GlobalHeaderOperationCustomizer implements OperationCustomizer {
    @Override
    public Operation customize(Operation operation, HandlerMethod handlerMethod) {

        Parameter customHeaderVersion = new Parameter().in(ParameterIn.HEADER.toString()).name("Custom-Header-Version")
                .description("Custom Header Version)").schema(new StringSchema()).example("v1").required(false);

        operation.addParametersItem(customHeaderVersion);       
        return operation;
    }

我有同样的要求,并且在昂首阔步时我得到如下所示

图片来自 swagger ui https://i.stack.imgur.com/pNiPW.png

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用开放 API 配置设置全局参数? 的相关文章

随机推荐

  • asynsPipe 生成 null 作为第一个值

    当在 Angular 中使用异步管道时 不会立即触发事件 http 请求或任何有延迟的可观察值 得到的第一个值是null为什么会发生这种情况 如何避免这种情况
  • 数据框的减法运算

    我有2个数据框df1 and df2 df1 lt data frame c1 c a b c d c2 c 1 2 3 4 df2 lt data frame c1 c c d e f c2 c 3 4 5 6 gt df1 c1 c2
  • Android:如何获取Fragment的视图

    在课堂上 我以编程方式添加一个片段 该片段包含一个按钮 我想要一个 onClick 实现 这是我的课程 public class ShareProduct extends SherlockFragmentActivity protected
  • 考虑在配置中定义“org.springframework.security.authentication.AuthenticationManager”类型的 bean

    我遵循了这里提到的一些建议 但它对我不起作用 因此 将问题放在这里 如何在自定义过滤器中使用 Java 配置注入 AuthenticationManager https stackoverflow com questions 2163355
  • 从 PHP 到 Java。有什么建议吗? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Matplotlib - 在streamplot()中使用一维数组

    所以我发现之前有两个类似的问题在这里问过 当x坐标 y坐标 x速度和y速度的一维数据可用时 如何使用streamplot函数 https stackoverflow com questions 33637693 how to use str
  • 为什么 all.equal 不能在 dplyr 的 mutate 函数中工作?

    考虑以下代码 library dplyr patientID lt c 1 2 3 4 age lt c 25 34 28 52 diabetes lt c Type1 Type2 Type1 Type1 status lt c Poor
  • TITAN:Gremlin 查询重复执行时返回不一致的结果

    我在 cassandra 上运行 REXSTER TITAN 0 4 并使用 gremlin 进行遍历 我在 Rexster Doghouse Gremlin 控制台中运行了下面的 gremlin 查询 顶点 92 之前已被删除 因为它是具
  • KMM 在 Android Studio - Windows 版本中工作吗

    我需要为 iOS 和 Android 构建一个应用程序 重新启动 Android Studio 后出现此错误 Kotlin 多平台移动插件问题Kotlin 多平台移动插件应该仅在 macOS 上运行 我使用的是windows机器 请告诉我
  • 在 Oracle pl/sql 中创建或替换表

    我需要一个脚本来创建表 或者如果它已经存在则将其删除 然后重新创建表 经过一番研究后我发现CREATE OR REPLACE TABLE在 pl sql 中不存在 所以我想出了这个脚本 DECLARE does not exist EXCE
  • Sqlite ALTER TABLE - 在现有列之间添加列?

    如果我有一个包含列的表 a b c 然后我执行 ALTER TABLE 命令来添加新列 d 是否可以将其添加到 a 和 b 之间 而不是添加到末尾 我听说列的位置会影响性能 在 SQLite 中 无法使用 ALTER TABLE 语句在两个
  • 有没有struts2 jquery渐进式文件上传插件?

    有没有像 jQuery 一样带有良好进度条的文件上传插件 支持标签库 可以在 Struts2 上运行 你知道吗struts2文件上传插件 http code google com p ajax file upload struts2 这是基
  • Django:icontains 大小写对 unicode 敏感

    我正在对我的博客进行简单的搜索 我使用亚美尼亚语 当我搜索时 这些字母总是有意义的 这是我的代码的一部分 先感谢您 search query get get search query list search query split post
  • 比较 php 中的多维和单维数组

    我是 php 新手 只是在玩一些数组 我想从数组中获取以下不同维度的内容 以下是多维数组 a array array productsid gt 90 CouponID gt 50 array productsid gt 80 Coupon
  • PrettyPhoto Jquery Lightbox 链接问题

    我正在使用非常棒的 PrettyPhoto Lightbox 它是一个 Jquery 灯箱克隆 要使用 iframe 启动灯箱 这是代码 a href http www google com iframe true width 100 he
  • 无法从堆中收集无法访问的对象

    我正在努力解决 JVM 堆 Java 1 7 中无法访问的对象 从图中可以看到 图中所有类都是不可达的 我们有超过74 的对象没有引用 所以应该被垃圾收集 在我们的 tomcat 7 服务器上运行 3 周后就会出现这种状态 该服务器仅运行
  • AS3:如何从事件侦听器功能中的 LoaderInfo 获取动态加载程序 URL?

    我正在加载许多图片 并使用数组来执行此操作 loader i load new URLRequest picture i 我的事件监听器功能是这样启用的 loader i contentLoaderInfo addEventListener
  • 使用 Akka 从 Play 应用程序进行 Web 服务调用

    我对于使用 Play 框架和 Akka 进行编程相当陌生 尽管我已经阅读它们有一段时间了 我现在正在默认 基本 Play 环境上启动一个概念验证应用程序 我的问题源于 Play 中的 Web 服务客户端 api http www playf
  • 由于 IPTABLES 更改,SVN 无法工作

    由于我重新启动了安装了 svn 的 Ubuntu 服务器 因此我无法从笔记本电脑访问它 使用 svnX 当我尝试浏览我的曲目库时 出现错误 svn Can t connect to host xxx xxx Address already
  • 使用开放 API 配置设置全局参数?

    我在用Spring Boot REST OpenAPI 3规格 在此示例中 我希望全局设置标题 Custom Header Version v1 我想在向每个端点发出请求时传递它 现在的问题是我已经100 个 REST 端点对于每个端点我需