如何在我的YAML Swagger定义中将属性类型定义为字符串的列表(列表,集合,数组,集合)

时间:2016-07-24 15:18:32

标签: collections yaml swagger

我正在为API编写一个昂首阔步的定义文件。 API是用于GET请求的

/path/to/my/api:
  get:
    summary: My Custom API
    description: |
      Gets a List of FooBar IDs
    produces:
      - application/json
    tags:
      - FooBar
    responses:
      "200":
        description: successful operation
        schema:
          $ref: "#/definitions/MyCustomType"         

...

MyCustomType:
  type: object
  properties: 
    myCustomObject
      type: ??? # list of string?

2 个答案:

答案 0 :(得分:13)

答案 1 :(得分:2)

这些评论似乎都没有真正回答这个问题-您如何在OpenAPI / Swagger中定义一组项目?

  • 字符串数组与SET不相同
  • 唯一字符串数组与SET不相同

集合实质上是未重复的枚举值的数组。

给出facebookpinteresttwitter的可能字符串值,名为share_type的字段可以具有包含一个或多个其中一个值的值,例如:

有效

facebook twitter facebook, twitter facebook, twitter, pinterest

无效项

instagram facebook, instagram pinterest, pinterest

另一个重要的区别是这些值不能重复。这是uniqueItems指令可以提供帮助的地方。

因此,以上述示例为例,OpenAPI规范可能如下所示:

share_type:
          type: array
          enum:
            - facebook
            - pinterest
            - twitter
          uniqueItems: true
          items: {}