如何将我的摇摇欲坠的定义数组限制为0或3

时间:2019-07-15 08:32:03

标签: swagger-2.0

我的招摇定义如:

someDef:
    type: object
    properties:
      enable:
        type: boolean
        default: false
      nodes:
        type: array
        maxItems: 3
        items:
          type: object
          properties:
            ip:
              type: string
              default: ''

我的节点是数组,它具有最大值:3。 我希望我的节点项目长度为0或3。 预先感谢。

1 个答案:

答案 0 :(得分:2)

“ 0或3项”可以在OpenAPI 3.0(openapi: 3.0.0)中定义,而不能在OpenAPI 2.0(swagger: '2.0')中定义。

在OpenAPI 2.0中,maxItems: 3是您最多可以做的事。

在OpenAPI 3.0中,可以将oneOfminItemsmaxItems结合使用来定义“ 0或3项”条件:

# openapi: 3.0.0

nodes:
  type: array
  items:
    type: object
    properties:
      ip:
        type: string
        default: ''
  oneOf:
    - minItems: 0
      maxItems: 0
    - minItems: 3
      maxItems: 3

请注意,尽管oneOf是OpenAPI 3.0规范的一部分(即,您可以编写包含oneOf的API定义),但对oneOf的实际工具支持可能会有所不同。