2016-09-06 2 views
2

Я пытаюсь написать JSON API с использованием swagger, и я столкнулся с некоторой проблемой, потому что некоторые поля требуются или нет в зависимости от используемого метода.Как запросить поле в зависимости от метода http?

Вот строка из обновлений спецификаций

Объект ресурса должен содержать элементы типа и идентификатора.

и здесь один из создания спецификации

Объект ресурс должен содержать, по меньшей мере, элемент типа.

Так в настоящее время у меня есть

Customer: 
    title: Customer 
    type: object 
    required: ["id", "type"] 
    properties: 
     id: 
     type: string 
     type: 
     type: string 
     attributes: 
     type: object 
     properties: 
      name: 
      type: string 
      address: 
      type: string 

Что я LKE сделать, имея required: ["id", "type"]patch для метода, но только required: ["type"] для post метода. Можно ли это сделать без переопределения другого Клиента?

ответ

2

Вы можете достичь этого, используя метод ниже:

Customer: 
    title: Customer 
    type: object 
    required: 
     - type 
    properties: 
     id: 
     type: string 
     type: 
     type: string 
     attributes: 
     type: object 
     properties: 
      name: 
      type: string 
      address: 
      type: string 
    Customer_patch: 
    type: object 
    required: 
     - id 
    allOf: 
     - $ref: '#/definitions/Customer' 

Вы должны переопределить другой клиент, чтобы поместить дополнительные обязательные поля, но вы можете использовать реальный объект определения клиента.