根据亚马逊网络服务文档,API Gateway中的模型支持JSON Schema语法,然而,它们导出为Swagger OpenAPI规范,而Swagger规范并不完全支持许多有效的JSON Schema结构。
我希望我的API Gateway模型有一组可选的文本字段,例如message,但当定义为
{
"type": "object",
"properties": {
"message": {
"type": "string"
}
}}
在启用正文验证的情况下,当消息为空字符串或缺少消息时,它将拒绝此模型。即使message未包含在必填字段列表中,它也会执行此操作
"required": [
"message"
],深入研究后,我发现要允许空/null字符串值,必须将null类型添加到属性类型列表中,例如:
{
"type": ["null", "string"]
}但是,这仍然不适用于API Gateway,也不能正确导出为Swagger规范YAML。
有没有办法用API Gateway和Swagger解决这个问题?
发布于 2017-05-17 07:17:27
正如海伦所提到的,Swagger不支持多种类型,也不支持null作为类型。这可能会阻止您的第一种方法使用swagger导入/导出。
但是,内部API网关模型支持使用JSON Schema,即使导入/导出不使用,也可以工作。我建议您尝试通过API网关控制台或API网关CLI输入您的模型。
https://stackoverflow.com/questions/43934703
复制相似问题