首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用JSON Schema和Swagger在API网关模型中声明多个类型的属性?

如何使用JSON Schema和Swagger在API网关模型中声明多个类型的属性?
EN

Stack Overflow用户
提问于 2017-05-12 17:53:28
回答 1查看 1.2K关注 0票数 2

根据亚马逊网络服务文档,API Gateway中的模型支持JSON Schema语法,然而,它们导出为Swagger OpenAPI规范,而Swagger规范并不完全支持许多有效的JSON Schema结构。

我希望我的API Gateway模型有一组可选的文本字段,例如message,但当定义为

代码语言:javascript
复制
{
  "type": "object",
  "properties": {
    "message": {
      "type": "string"
    }
  }

}

在启用正文验证的情况下,当消息为空字符串或缺少消息时,它将拒绝此模型。即使message未包含在必填字段列表中,它也会执行此操作

代码语言:javascript
复制
  "required": [
      "message"
    ],

深入研究后,我发现要允许空/null字符串值,必须将null类型添加到属性类型列表中,例如:

代码语言:javascript
复制
{
    "type": ["null", "string"]
}

但是,这仍然不适用于API Gateway,也不能正确导出为Swagger规范YAML。

有没有办法用API Gateway和Swagger解决这个问题?

EN

回答 1

Stack Overflow用户

发布于 2017-05-17 07:17:27

正如海伦所提到的,Swagger不支持多种类型,也不支持null作为类型。这可能会阻止您的第一种方法使用swagger导入/导出。

但是,内部API网关模型支持使用JSON Schema,即使导入/导出不使用,也可以工作。我建议您尝试通过API网关控制台或API网关CLI输入您的模型。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43934703

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档