Подмножества свойств в определении Swagger

Я пишу API, в котором у меня есть контроллер, который отправляет новый объект POST, ПОЛУЧАЕТ его обратно и может PUT / PATCH обновлять его. Проблема в том, что свойства двух разных действий различаются. Например, когда я отправляю новый объект POST, я хочу, чтобы был возвращен его id, чтобы его можно было использовать для его идентификации для конечных точек GET / PUT / PATCH. Не имеет значения, вернется ли он через GET (это просто дублирование данных в этот момент), но я, конечно, не хочу, чтобы он передавался для PUT или PATCH, поскольку идентификатор неизменен.

Итак, как лучше всего обозначить это чванством, чтобы у меня были разные версии одного и того же определения? Я видел, что вы можете использовать allOf для добавления определений к другим свойствам, но мне интересно, есть ли способ сказать «не эти свойства в определении»?

Если бы я мог сделать последнее, я мог бы сделать одно определение объекта в целом и просто выделить те вещи, которые не требуется возвращать или отправлять при обращении к нему в контроллере. Это возможно? Я понимаю?

(Чтобы сделать вещи более интересными, мой файл swagger.json создается с помощью swagger-php на основе аннотаций в моем контроллере и файлах сущностей)


person Dan B    schedule 09.12.2015    source источник


Ответы (1)


Я столкнулся с той же проблемой при написании нашего файла спецификации и не знал, как ее исправить, но я использовал свойство readOnly: true, так в документации говорится, что это свойство только для чтения, вы можете только читать это с помощью методов GET / POST, но вы не можете отправить его через PATCH / PUT .. надеюсь, что это поможет

person Aly Saleh    schedule 17.12.2015