如何使用OpenAPI描述对此数组建模?

时间:2017-11-10 02:25:37

标签: swagger swagger-2.0 openapi

我想编写一个用数组响应的API。我的OpenAPI描述如下:

definitions:
  DeviceArray:
    type: array
    items:
      type: string
    example:
      - {"DeviceID": 103609131103,"NetworkName": "nzp-20007-gnd-rt-01","RelativeName": "NZP-20007-GND-RT-01.PST.SYTECNMS.NET","Type": null}
      - {"DeviceID": 105621398103,"NetworkName": "nzp-20007-gnd-as-01","RelativeName": "NZP-20007-GND-AS-01.PST.SYTECNMS.NET","Type": null}
      - {"DeviceID": 122403148102,"NetworkName": null,"RelativeName": "BEAS/U_NTU_001","Type": "NTU"}
      - {"DeviceID": 165002297102,"NetworkName": null,"RelativeName": "BEAS/G_HSNS SDP_001","Type": "Alcatel MSAP"}
      - {"DeviceID": 165002320102,"NetworkName": "10.6.194.126","RelativeName": "BEAS/G_ONEA1424X_001","Type": "OneAccess IAD/Router"}
      - {"DeviceID": 160885080102,"NetworkName": null,"RelativeName": "BEAS/U_CISCO_1921_001","Type": "Cisco Packet Switch"}

但我得到的回应是:

[
""
]

如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

这显然不是type: string,您需要将类型设置为type: object并直接定义:

type: array
items:
  type: object
  properties:
    DeviceID:
      type: string
    NetWorkName:
      type: string
    RelativeName:
      type: string

或引用对象(如果已经定义了它):

type: array
items:
  $ref: '#/yourObjectReference'