【发布时间】:2017-10-11 14:16:33
【问题描述】:
根据 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 Gateway,也不能正确导出为 Swagger 规范 YAML。
有没有什么方法可以用 API Gateway 和 Swagger 解决这个问题?
【问题讨论】:
-
"type": ["null", "string"]在 OpenAPI/Swagger 2.0 中无效,因为它不支持多种类型和null作为类型。nullable将在下一个版本 OpenAI 3.0 中得到支持。 (之前有人问过这个问题,我会尝试找到重复的问题......)虽然不确定 API Gateway 部分。 -
谢谢,这是一些有价值的意见!
标签: amazon-web-services swagger aws-api-gateway jsonschema