在 API Gateway 请求验证中设置默认值

Ama*_*ari 3 json jsonschema amazon-web-services aws-api-gateway

是否可以在 api 网关端点的模型中声明默认值?我正在尝试这样做:

 1 {
  2   "type": "object",
  3   "required": ["name"],
  4   "properties": {
  5     "name": {
  6       "type": "string",
  7       "default": "My Name"
  8     }
  9   }
 10 }
Run Code Online (Sandbox Code Playgroud)

但这根本不起作用。如果我不传递名称,API 网关将返回错误,指出正文无效。

谢谢。

Kas*_*yap 5

根据AWS 文档

\n
\n

有效负载可以具有根据 \xc2\xa0 JSON 架构草案 4 的数据模型。

\n
\n

JSON 架构草案 4 没有定义指定默认值的方法。所以我的猜测是否定的,使用输入模型不可能做到这一点。

\n

如果您确实想在 API 网关层执行此操作,那么也许您应该探索输入映射模板。“映射模板是用\xc2\xa0Velocity Template Language (VTL) 表示的脚本”。VTL 似乎有更好的能力。

\n

恕我直言,这是一个坏主意。我宁愿在后端执行此操作。

\n

  • 我可以确认这一点。自草案 4 以来已添加“default”,但没有定义的行为。“default”的任何使用都是验证器或应用程序特定的。我们希望在超越草案状态之前的某个时候澄清这一点。 (2认同)