2017-01-09 3 views
0

В Swagger можно ли ссылаться на свойства родительского объекта при определении свойств дочернего объекта required?Ссылка на свойства родительского объекта в разделе «обязательный» дочернего объекта в Swagger

К примеру, учитывая следующий базовый класс:

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?

+0

Возможный дубликат [Повторная эксплуатация модели с различными требуемыми свойствами] (http://stackoverflow.com/questions/40839706/re-using-model-with- свойства по-разному) – Helen

ответ

0

Я вижу ту же проблему с конкретной версией пакета swagger-spec-validator, в моем случае это была версия 2.0.4, которая исправила проблему. Установите его с помощью pip install swagger-spec-validator==2.0.4 или прикрепите пакет с номером версии в requirements.txt

+0

Спасибо за подсказку. Я действительно был 2.0.3, когда я пробовал это. Я дам ему перейти с 2.1.0 (новейшим) позже и, надеюсь, больше повезет. – ventolin

Смежные вопросы