如何在整个 Swagger YAML 文档中重复使用我的 x-amazon-apigateway-integration 定义?

2024-04-14

我目前正在使用 Swagger 定义具有许多端点的 API,并且每个端点都具有相同的“x-amazon-apigateway-integration”键定义。我想在文档中的某个位置定义它,并在整个过程中重复使用该定义。

要么我不理解应该如何定义定义,要么我没有将其放在正确的位置,或者两者混合。我尝试在“定义”中定义这个定义,并作为它自己的键下的一些别名。定义(删除了关键信息)是:

x-amazon-apigateway-integration:
  responses:
    default:
      statusCode: '200'
  passthroughBehavior: when_no_match
  httpMethod: POST
  uri: >-
    arn:aws:apigateway:<region>:lambda:path/2015-03-31/functions/<lambda arn>/invocations
  credentials: '<role arn>'
  type: aws     
  requestTemplates: "application/json": "<object definition>"  

我尝试将其定义为它自己的密钥下的别名(不是定义,而是相同的基本范围):

amazon:
  Amazon: &Amazon
    - responses:
        default:
          statusCode: '200'
    - passthroughBehavior: when_no_match
    - httpMethod: POST
    - uri: >-
    arn:aws:apigateway:<region>:lambda:path/2015-03-31/functions/<lambda arn>/invocations
    - credentials: '<role arn>'
    - type: aws     
    - requestTemplates:
      "application/json": "<object definition>"

要使用,我有以下内容:

x-amazon-apigateway-integration:
  *Amazon

API 网关导入时收到的错误是“由于路径 / 处的集成格式错误,无法解析 API 定义”

我还尝试在“定义”下定义它,并使用“ref”来访问它:

definitions:
  Amazon:
    type: object
    x-amazon-apigateway-integration:
      responses:
        default:
          statusCode: '200'
      passthroughBehavior: when_no_match
      httpMethod: POST
      uri: >-
          arn:aws:apigateway:<region>:lambda:path/2015-03-31/functions/<lambda arn>/invocations
      credentials: '<role arn>'
      type: aws     
      requestTemplates:
        "application/json": "<object definition>"   

要使用,我有以下内容:

x-amazon-apigateway-integration:
  $ref: '#/definitions/Amazon'

导入 API Gateway 时,我收到以下错误:

由于 Swagger 文件中的错误,您的 API 未导入。

  • 无法为“Amazon”创建模型:指定的模型无效:验证结果:警告:[],错误:[指定的模型架构无效。不支持的关键字:[“x-amazon-apigateway-integration”]]
  • 此外,还发现了这些警告:
  • “POST /”的未知集成类型“null”。忽略。

预先感谢您的帮助。


使用 YAML 锚点似乎是个好主意。正确的语法如下。

在 OpenAPI 文件的根级别添加以下内容:

x-definitions:      # <--- "x-" before "definitions" prevents it from being
                    #      attempted to be parsed as an OpenAPI Schema object.
  Amazon:
    type: object
    x-amazon-apigateway-integration: &Amazon   # <--- "&Amazon" is the anchor
      responses:
        default:
          statusCode: '200'
      passthroughBehavior: when_no_match
      httpMethod: POST
      uri: >-
          arn:aws:apigateway:<region>:lambda:path/2015-03-31/functions/<lambda arn>/invocations
      credentials: '<role arn>'
      type: aws     
      requestTemplates:
        "application/json": "<object definition>" 

然后你可以像这样引用锚点:

x-amazon-apigateway-integration: *Amazon

但是,AWS 解析器可能不支持 YAML 锚点(&..., *...)。在这种情况下,您可以尝试使用可以解析 YAML 锚点的解析器来预处理您的定义,然后将解析后的文件提供给 AWS。

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

如何在整个 Swagger YAML 文档中重复使用我的 x-amazon-apigateway-integration 定义? 的相关文章

随机推荐

  • YAP Prolog 中的正向链接?

    我需要在某些 Prolog 问题中使用前向链接器 我想避免使用普通元解释器从头开始实现它 但如果没有其他选项可用 这就是我必须要做的 因为使用元解释器执行此操作会很慢 而且我我确信应该有一些好的实现 有人知道 YAP 或 SWI Prolo
  • 通过 TCP 客户端套接字接收数据时出现问题

    我正在尝试用 C 语言编写一个 TCP 客户端程序 客户端将在其中启动 连接到服务器 然后它会发送一些信息 然后监听它收到的信息并做出相应的反应 我遇到麻烦的部分是持续聆听 这是我所拥有的 while 1 numbytes recv soc
  • Addon SDK方式制作对话框

    使用 SDK 制作对话框的正确方法是什么 该对话框不是锚定到附加栏等 而是显示在屏幕中央 似乎没有任何 API 可以实现这一重要功能 我确实看到了windows utils has open但我有两个问题 打开对话框似乎需要 chrome
  • 如何检查当前分支是否有任何内容需要提交?

    目标是获得可以在 shell 命令中评估的明确状态 I tried git status但它总是返回 0 即使有项目需要提交 git status echo this is always 0 我有一个想法 但我认为这是一个坏主意 if gi
  • 是否可以自动化即点即用应用程序?

    我有一个小型应用程序 可以通过 COM OLE 自动化实现 Microsoft Word 的自动化 不幸的是 这不适用于虚拟化的即点即用版本的 Word 因为它们在注册表中没有所需的密钥 至少不是预期的位置 换句话说 CreateObjec
  • Apache FOP 1.1 带有 zxing 的 QRCodes

    好的 我在使用 Barcode4j 2 1 和 zxing 0 1 2 在 FOP 1 1 中生成 QR 码时遇到问题 我目前有一个 FOP 1 0 实现正常工作 通过添加
  • html 中颜色选择的效率。 RGB、十六进制、名称

    浏览器解析颜色的速度有差异吗 例如 红色 我可以使用以下CSS red color red color ff0000 color rgb 255 0 0 这些都会产生相同的结果 文本颜色为红色 但从效率的角度来看 什么是最好的搭配 我意识到
  • 如何将 WMF 文件转换为 SVG 文件?

    如何将 WMF 文件转换为 SVG 我有大约 550 个 WMF 文件需要转换为 SVG 格式 对于一个文件 我在 Visio 中打开 WMF 文件并将其另存为 SVG 格式 但转换大约 550 个文件是一个繁琐的过程 实际上 这些WMF文
  • 在特定列上设置 ANSI_PADDING(同一表的不同列中 ANSI_PADDING ON 和 OFF)

    是否可以 使用单个 CREATE TABLE 脚本 设置特定的varbinary列ANSI PADDING ON但其他人ANSI PADDING OFF e g CREATE TABLE PaddingX ColumnA varbinary
  • 可绘制为字节[]

    我有一张来自网络的图像ImageView 它非常小 一个图标 我想将它存储在我的 SQLite 数据库中 我可以得到一个Drawable from mImageView getDrawable 但我不知道下一步该做什么 我不完全理解Draw
  • 如何将原始模数和指数转换为 RSA 公钥(.pem 格式)

    我将 RSA 公钥的模数和指数嵌入到二进制文件中 并且我正在尝试提取整个 blob 并创建可用的 pem 公钥 目前 我正在提取完整的 260 个字节 4 个字节用于指数 256 个字节用于模数 并编码为base64 我正在使用以下 she
  • scikit-learn 中的“详细”参数

    许多 scikit learn 函数都有verbose根据他们的文档 c 控制冗长 越高 消息越多 例如 网格搜索简历 https scikit learn org stable modules generated sklearn mode
  • .Net 4.5 EventSource ETW 提供程序未显示在提供程序列表中

    我一直致力于使用 NET4 5新功能ETW EventSource 我无法使用 perfmon gt Data Collector Sets 将其显示在跟踪提供程序列表中 我能够使用 perfview 查看日志 我能够使用 EventSou
  • Android Firebase 将多个帐户提供商与匹配的电子邮件链接起来

    在我的 firebase 仪表板中我设置了multiple accounts for one email option 我的应用程序中有简单的电子邮件 Facebook 和 Google Plus 身份验证 我在 LoginActivity
  • 基于 XML 的 Spring Security 配置中的 use-expresss 属性与基于代码的配置等效

    如何启用use expressions基于代码的配置中 Spring Security 配置的选项 需要此选项才能启用基于表达式的访问控制 http docs spring io spring security site docs 3 2
  • sed:替换包含模式的行

    我看到了很多关于sed命令 但没有一个与我的家伙匹配 我想替换包含模式的整行 我觉得sed命令是最好的选择 我从这个开始sed命令但不起作用 sed i s pattern Substitution myfile txt 之后 我使用另一个
  • 如何从表中恢复旧数据

    我在 SQL 2008 的表中做了一个更新语句 该语句用一些错误的数据更新了表 我没有数据库备份 这是一些已更新的重要日期 无论如何 我可以从表中恢复旧数据吗 Thanks SNA 基本上不需要 除非您想使用商业日志阅读器并尝试用细齿梳子仔
  • GAE 检测本地主机或 appspot 的运行位置

    我有 GAE 申请 它使用 Oauth 2 0 协议 我现在使用Java 库 目前 我手动切换重定向 URL 当我在本地主机上测试时 我使用localhost 8888 oauth2callback当我部署应用程序时 我设置example
  • google-cloud-sdk 安装在 CentOS /usr/local/bin 中找不到正确的 Python 2.7 版本

    我们的服务器操作系统是CentOS 6 8 我试图安装google cloud sdk 即使我安装了 usr local bin 中的 python 2 7 它仍在查看旧版本 usr bin 中的 python 2 6 我尝试给予expor
  • 如何在整个 Swagger YAML 文档中重复使用我的 x-amazon-apigateway-integration 定义?

    我目前正在使用 Swagger 定义具有许多端点的 API 并且每个端点都具有相同的 x amazon apigateway integration 键定义 我想在文档中的某个位置定义它 并在整个过程中重复使用该定义 要么我不理解应该如何定