如何使用AWS API网关从另一个模型引用一个模型



说我有一个模型:

"Pet":{
  "type": "object"
  "properties": {
    "name":{"type":"integer"},
    "age":{"type":"integer"}
  }
}

和另一个模型:

"Human":{
  "type": "object"
  "properties": {
    "name":{"type":"integer"},
    "age":{"type":"integer"},
    "pets":{
      "type":"array"
      "items": {
        <This is where my question is>
      }
    }
  }
}

如何在人类模型中引用PET模型?

用招摇,我可以说:

"$ref": "#/definitions/Pet"

但是API网关似乎不允许。

如果您是指在Swagger之外的参考模型,则可以通过用像下面的绝对URL指定模型来执行此操作。

 {"type":"array","items":{"$ref":"https://apigateway.amazonaws.com/restapis/<rest_api_id>/models/Pet"}}

对于Swagger,此示例中的此示例从Swagger -https://github.com/oai/openapi-specification/blob/master/master/examples/v2.0/json/json/petstore.json

"Pets": {
  "type": "array",
  "items": {
    "$ref": "#/definitions/Pet"
  }

请注意,API网关不支持"默认"响应,因此,如果您尝试导入上述petstore。示例,您需要删除"默认"字段。

如果您只需要单个值(非数组),则可以使用:

..
"properties": {
            "id": {
                "$ref": "https://apigateway.amazonaws.com/restapis/abcd1234/models/UserId"
            },
..

(如果这可能是相对URL而不是绝对的话,那将是很好的,但是我还没有提及如何做到这一点)

相关内容

  • 没有找到相关文章

最新更新