Swagger 使用aws api网关模型,如何要求对象至少包含1个有效密钥

Swagger 使用aws api网关模型,如何要求对象至少包含1个有效密钥,swagger,aws-api-gateway,Swagger,Aws Api Gateway,我正在使用API网关的请求验证。以下是我目前的模型: { "type" : "object", "required" : [ "dc", "uid", "data" ], "properties" : { "dc" : { "type" : "string" }, "uid" : { "type" : "string" }, "data" : { "type" : "object" } },

我正在使用API网关的请求验证。以下是我目前的模型:

{
  "type" : "object",
  "required" : [ "dc", "uid", "data" ],
  "properties" : {
    "dc" : {
      "type" : "string"
    },
    "uid" : {
      "type" : "string"
    },
    "data" : {
      "type" : "object"
    }
  },
  "title" : "MyApi"
}
与所需函数类似,我希望确保
数据
对象在我定义的列表中至少有一个键
[a,b,c,随便什么]

如果这是不可能的,是否有一种方法至少可以防止发送空值?我尝试了
“nullable”:false
,但AWS说这是一个无效的模型架构。

minProperties
设置为“1”可能有效。看


数据是否可以(应该)强类型?如果是这样,您可以使用组合、继承和多态性来指示
数据
是已定义的模式。请参见

So
minProperties
是答案,但是目前cloudformation中存在一个bug,它不尊重包含此模型密钥的招摇过市模板。模型将在此密钥上部署。您仍然可以使用webUI手动编辑模型,并将此键添加到模型中以使其正常工作。