根据AWS文档,API Gateway中的模型支持JSON Schema语法,但是,它们导出为Swagger OpenAPI规范,其中Swagger规范不完全支持许多有效的JSON Schema结构。
我希望我的API Gateway模型有一组可选的文本字段,例如message
,但当定义为
{
"type": "object",
"properties": {
"message": {
"type": "string"
}
}
}
并且启用了主体验证,当消息为空字符串或丢失时,它会拒绝此模型。即使<code>消息
"required": [
"message"
],
四处挖掘,我发现要允许空/空字符串值,必须将空
类型添加到属性类型列表中,例如:
{
"type": ["null", "string"]
}
然而,这仍然不能与API Gateway一起工作,也不能正确地作为Swagger spec YAML导出。
有没有办法通过API网关和Swagger解决这个问题?
正如海伦所提到的,Swagger 不支持多种类型,也不支持 null 作为一种类型。这可能会阻止您的第一种方法使用 swagger 导入/导出。
但是,内部API网关模型支持确实使用JSON模式,即使导入/导出不使用,也可以工作。我建议您尝试通过API网关控制台或API网关CLI输入模型。
我正在尝试使用AWS API网关实现Swagger或OpenAPI 3.0中定义的API。 这个API中的一个endpoint采用一个抽象的基本模型(让我们称之为< code>Pet以与老套的Swagger示例保持一致),但实际上期望一个从< code>Pet派生的具体模型...例如< code>Dog。 具体模型可以通过上的(type)属性确定。 当然,这是的工作: (取自此处) 好吧,很烦人,
我是Angular 2和TypeScript的新手,我正在尝试遵循最佳实践。 我试图创建一个TypeScript类,而不是使用简单的JavaScript模型({ })。 但是,Angular 2好像不喜欢。 我的代码是: 我将其用作: 我收到来自 Angular 的错误: 异常:无法解析testWidget的所有参数:(?). 所以我想,模型还没有定义...我把它移到最上面! 除了现在我得到例外:
今天,我意识到让数组像字典一样运行更有意义,这样我就可以通过名称而不是数字索引访问特定元素。我希望能够执行而不是(即使我声明了一个将submitButton映射到请求的索引的枚举)。 这是可行的,但我现在允许一堆欺骗我的代码库,这是很糟糕的。我希望对象知道,只有类型的东西才能放入其中。 我可以用这些字段声明一个类,因为我希望它们的数量在将来可以动态添加,所以下面的操作是不可行的。
问题内容: 我了解在创建这样的新对象时: 更通用,并且允许更多的可重用性,但是当创建tri时会发生以下情况: 由于Triangle是GeomObject的子类,因此tri还是不是GeomObject?声明的类型如何影响编译?谢谢 add:另一个问题:说我有 Integer n1 = new Integer(3); Object n2 = new Integer(4); System.out.pri
我有一个ASP。NET核心Web APIendpoint,它接受(FromBody)下面定义的搜索对象 因此...如果我将以下JSON发布到我的endpoint {“pageSize”:10,“query”:{“fieldId”:“body”,“value”:“cake”,“operator”:“matches”} 我成功地获取了一个搜索对象,但查询属性的类型是Expression,而不是Matc
本文向大家介绍如何在Java 9的JShell中声明引用类型?,包括了如何在Java 9的JShell中声明引用类型?的使用技巧和注意事项,需要的朋友参考一下 与值类型不同,引用类型不会直接存储其值。相反,它将存储存储值的地址 。这意味着引用类型包含指向另一个保存数据的存储位置的指针。引用类型为String,数组,类和委托。 片段1 我n个下面的代码片段,两个新的动物对象是在堆上创建的。它们的存储