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

AWS API Gateway模型Schema无效问题排查求助

修复AWS API Gateway无效模型Schema的问题

我帮你排查了下你提供的JSON Schema,发现几个不符合draft-04规范的问题,这应该就是AWS报错的原因:

  • required关键字放错位置了:在JSON Schema draft-04里,required是定义在对象根层级的,用来指定哪些属性是必填的,不能嵌套在email属性的定义里。
  • 误用了patternProperties:这个关键字是用来匹配属性名称的(比如你想匹配所有以email_开头的属性),但你要验证的是email属性的值格式,应该用pattern关键字。
  • 正则表达式不完整且有语法问题:你提供的正则被截断了,而且括号不匹配,会导致Schema解析失败。

这里是修正后的完整Schema,你可以直接用:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "title": "EmailInputModel",
  "type": "object",
  "properties": {
    "email": {
      "type": "string",
      "pattern": "^((\"[\\w-\\s]+\")|([\\w-]+(?:\\.[\\w-]+)*)|(\"[\\w-\\s]+\")([\\w-]+(?:\\.[\\w-]+)*))(@((?:[\\w-]+\\.)*\\w[\\w-]{0,66})\\.([a-z]{2,6}(?:\\.[a-z]{2})?)$)|(@\\[?((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])\\.){3}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])\\]?$)"
    }
  },
  "required": ["email"]
}

简单解释下修正点:

  1. 把required: ["email"]移到和properties同级的位置,明确标记email是必填属性。
  2. 把patternProperties换成pattern,用来验证email字符串的格式。
  3. 补全并修正了正则表达式的括号匹配,确保它能正确匹配常见的邮箱格式(包括域名和IP形式的邮箱)。

你可以把这个Schema放到AWS API Gateway里试试,应该就能通过验证了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 06:38:00