Swagger 2.0 - 如何定义嵌入对象

时间:2015-06-26 21:38:23

标签: swagger swagger-2.0

我想用一个键和一个值来定义一个对象,但是无法弄清楚如何将它定义为一个swagger 2.0定义中的属性。坦率地说,如果想要能够定义强类型客户端,我不确定这是否可行。但是,我想我要问看这是否可能/允许。

基本上,我希望能够存储以下对象:

{ "currencies": 
  {  "usd" : 1.10,
     "eur" : 2.25
  }
}

但我不想要usd,必须在架构中定义eur。我可以在下面做,但我不希望usd或eur被预定义。我希望它接受对象键的任何值。

 "Product": {
    "properties": {
        "currencies": {
                    "type": "currencyObj"               
                },
            }
     }, 
  },
  "currencyObj": {
     "id": "currencyObj",
     "properties": {
          "eur": {
             "type": "float"
          },
          "usd": {
            "type": "float"
          }
     }
  }

1 个答案:

答案 0 :(得分:2)

Swagger 2.0允许您定义string to type mapping,您需要使用additionalProperties。使用以下表示法来定义地图:

"currencyObj": {
  "type": "object",
  "additionalProperties": {
    "type": "number"
  }
}