首页 > 解决方案 > AWS API Gateway 没有从 OpenAPI/Swagger 获取路径和查询参数验证?

问题描述

我将 OpenAPI 定义 json 导入 AWS API Gateway,我注意到路径或查询参数验证都不起作用。我希望这样做/card/{type}?userId={userId},其中 type 属于一组枚举值和 userId 具有正则表达式模式,如下所示:

"paths: {
  "/card/{type}": {
    "get": {
      "operationId": "..",
      "parameters": [
        {
           "name": "type",
           "in": "path",
           "schema": {"$ref": "#/components/schemas/type}
        },
        {
           "name": "userId"
           "in": "query",
           "schema": {
             "type": "string",
             "pattern": "<some regex>"
           }
        },
        ...
      ]
    }
  }
}

结果我可以为路径和查询参数输入我想要的任何值。所以我尝试从 AWS 控制台导出 OpenAPI 文件,我得到了:

   ...
      "parameters": [
        {
           "name": "type",
           "in": "path",
           "schema": {
             "type": "string"
           }
        },
        {
           "name": "userId"
           "in": "query",
           "schema": {
             "type": "string"
        }

对于 API Gateway,验证器是否不适用于 URL 的一部分?因为带有 body 的请求似乎工作正常。还是我缺少什么?

标签: amazon-web-servicesswaggeraws-api-gatewayopenapiapi-gateway

解决方案


推荐阅读