说我有一个模型:
"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而不是绝对的话,那将是很好的,但是我还没有提及如何做到这一点)