You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在AWS API Gateway中验证路径参数{id}的存在与类型?

可以在API Gateway中验证路径参数的存在性和类型

API Gateway完全支持在请求到达Lambda之前验证路径参数的存在性与类型,只是配置入口相对隐蔽,容易被忽略。以下是具体实现方式:

针对REST API的配置步骤

  1. 确保路径参数必填

    • 进入API Gateway控制台,找到目标API和/users/{id}资源。
    • 打开该资源对应方法(如GET/POST)的方法请求页面。
    • 在Request Path Parameters区域,点击「Add Path Parameter」,输入id并勾选「Required」选项。此时API Gateway会自动拦截未携带id参数的请求,直接返回400错误。
  2. 验证参数类型

    • 先创建模型定义参数规则:
      • 在API的「Models」页面点击「Create model」,输入名称(如UserIdModel),内容类型选application/json,填入JSON Schema:
        {
          "$schema": "http://json-schema.org/draft-04/schema#",
          "type": "object",
          "properties": {
            "id": { "type": "integer" }
          },
          "required": ["id"]
        }
        
    • 创建请求验证器:
      • 在API的「Request Validators」页面点击「Create request validator」,勾选「Validate request path parameters」选项后保存。
    • 关联验证规则:
      • 返回方法请求页面,在「Request Validator」下拉框选择刚创建的验证器,再将路径参数id的「Validation」选项关联到UserIdModel。
    • 配置完成后,若id不是整数类型,API Gateway会直接返回400错误,不会将请求转发到Lambda。

针对HTTP API的配置步骤

HTTP API的验证配置更简洁,直接通过JSON Schema定义:

  • 进入API Gateway控制台,找到目标HTTP API,进入「Routes」页面选择/users/{id}路由。
  • 在「Request validation」区域点击「Edit」,选择「Create new model」,填入定义路径参数类型的JSON Schema:
    {
      "$schema": "http://json-schema.org/draft-04/schema#",
      "type": "object",
      "properties": {
        "parameters": {
          "path": {
            "id": { "type": "integer" }
          }
        }
      },
      "required": ["parameters"]
    }
    
  • 保存后,API Gateway会自动验证路径参数的存在性和类型,不符合规则的请求会被拦截。

补充说明

如果仅需验证参数格式(如id必须是数字字符串),无需复杂类型校验,可以在方法请求的路径参数设置中添加正则表达式:在路径参数id的「Regex」字段填入^\d+$,非数字格式的id会被直接拦截。

内容的提问来源于stack exchange,提问作者Marwan Ghazala

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 19:26:15