Swagger/OpenAPI 路径和 AWS API 中的正则表达式

Pir*_*ode 5 swagger aws-api-gateway openapi

我在 openapi 路径中遇到正则表达式问题。API中有必需的路径参数,必须是proxy+。问题是当我尝试使用proxy+参数将 openapi 文件导入 AWS API 时,由于正则表达式(路径参数不能有“+”符号)返回错误。

(在发布这个问题之前,我搜索了 StackOverflow 并且当前的帖子没有回答我的问题。我知道路径参数受正则表达式的限制,我正在寻找“代理”-“代理+”和swagger编辑器中错误差异的解决方案和 AWS)

这就是它的样子。

  1. 这段代码在 swagger 编辑器中没有返回错误,但不想在 AWS API 中导入,因为正则表达式:
paths: 
  /test/{tablename}/{proxy+}:
    options:
      parameters:
      - name: "tablename"
        in: "path"
        required: true
        schema:
         type: "string" 
      - name: "proxy+"
        in: "path"
        required: true
        schema:
         type: "string"     
Run Code Online (Sandbox Code Playgroud)

来自 CLI 的 AWS 错误:

无法在路径“/test/{tablename}/{proxy+}”的资源上放置方法“OPTIONS”:指定的映射表达式无效:验证结果:警告:[],错误:[参数名称应与以下正则表达式匹配:^ [a-zA-Z0-9._$-]+$]

  1. 我试图从代理参数中删除“+”,但以这种方式将其保留在路径中:
paths: 
  /test/{tablename}/{proxy+}:
    options:
      parameters:
      - name: "tablename"
        in: "path"
        required: true
        schema:
         type: "string" 
      - name: "proxy"
        in: "path"
        required: true
        schema:
         type: "string"     
Run Code Online (Sandbox Code Playgroud)

在这种情况下,AWS 导入可以正常工作,但 swagger 编辑器会返回此错误:

路径语义错误。/test/{tablename}/{proxy+} 声明的路径参数“proxy+”需要在路径或操作级别定义为路径参数

在这种情况下,您会推荐什么可能的解决方案?

为什么 swagger 编辑器错误和 AWS API 导入错误不同?