【问题标题】:How do I reference one model from another model using aws API Gateway如何使用 aws API Gateway 从另一个模型中引用一个模型
【发布时间】:2016-10-15 20:11:19
【问题描述】:

假设我有一个模型:

"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 Gateway 似乎不允许这样做。

【问题讨论】:

    标签: amazon-web-services aws-api-gateway


    【解决方案1】:

    如果您指的是 swagger 之外的参考模型,您可以通过使用绝对 url 指定模型来做到这一点,如下所示

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

    对于 swagger,这个来自 open api 规范的示例展示了如何在 swagger 中引用模型 - https://github.com/OAI/OpenAPI-Specification/blob/master/examples/v2.0/json/petstore.json

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

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

    【讨论】:

    【解决方案2】:

    如果您只想要单个值(而不是数组),这可行:

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

    (如果这可以是相对 URL 而不是绝对 URL,那就太好了,但我还没有找到任何关于如何做到这一点的提及)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-05-13
      • 1970-01-01
      • 2022-01-15
      • 1970-01-01
      • 2021-05-24
      • 1970-01-01
      • 2020-06-15
      相关资源
      最近更新 更多