在Swagger中的子对象的“required”部分中引用父对象属性

时间:2017-01-09 08:37:28

标签: inheritance polymorphism swagger swagger-2.0

在Swagger中,在定义子对象的哪些属性为required时是否可以引用父对象的属性?

例如,给定以下基类:

definitions:
  Pet:
    type: object
    properties:
      name:
        type: string
      owner:
        type: string

我想有两个子类:一个用于创建Pet(其中所有属性在有效负载中都需要),另一个用于更新Pet(不需要任何属性)。我试着这样做:

  CreatePetRequest:
    allOf:
      - $ref: '#/definitions/Pet'
    required:
      - name
      - owner

  UpdatePetRequest:
    allOf:
      - $ref: '#/definitions/Pet'

然而,这不起作用。相反,会引发异常:

swagger_spec_validator.common.SwaggerValidationError: Required list has properties not defined: ['name', 'owner']

我怎样才能做到这一点?甚至可以使用Swagger吗?

1 个答案:

答案 0 :(得分:0)

我发现特定版本的swagger-spec-validator pip包存在完全相同的问题,在我的情况下,版本2.0.4解决了问题。使用pip install swagger-spec-validator==2.0.4安装或使用版本号requirements.txt

固定包