根据AWS文档,API Gateway中的模型支持JSON Schema语法,但是,它们导出为Swagger OpenAPI规范,其中Swagger规范不完全支持许多有效的JSON Schema结构 .
我希望我的API网关模型有一组可选的文本字段,例如 message
,但定义为
{
"type": "object",
"properties": {
"message": {
"type": "string"
}
}
}
并且启用了体验验证,当消息为空字符串或缺失时,它会拒绝此模型 . 即使 message
未包含在必填字段列表中,也会这样做
"required": [
"message"
],
四处搜索,我发现要允许空/空字符串值,必须将 null
类型添加到属性类型列表中,例如:
{
"type": ["null", "string"]
}
但是,这仍然不适用于API网关,也不能正确导出为Swagger规范YAML .
有没有办法用API Gateway和Swagger来解决这个问题?
1 回答
正如Helen所提到的,Swagger不支持多种类型,也不支持null作为类型 . 这可能会阻止您使用swagger导入/导出的第一种方法 .
但是,内部API网关模型支持确实使用JSON模式,即使导入/导出没有,也可以工作 . 我建议您尝试通过API网关控制台或API网关CLI输入您的模型 .