от
Можно ли сделать одно и то же поле обязательным для POST и необязательным для запросов PUT для REST API? Или это зависит от технологии, используемой для реализации этого запроса? Например, существует запрос POST для создания объектов
Car
, и этот объект имеет поле
model_id
, которое фактически выбрано из словаря моделей. И запрос POST требует
model_id
, потому что для автомобиля должен быть определен model_id. И я хочу иметь метод PUT, который меняет поле, например
serial_num
,
manufacture_date
,
color
и т. д. и даже
model_id
. Но я хочу, чтобы этот метод PUT изменил
model_id
в качестве необязательного параметра, например Я просто хочу изменить цвет, и это нормально. Так возможно ли это в REST? Разве некоторые технологии, которые реализуют этот запрос, не могут позволить мне сделать другой набор необязательных / обязательных параметров для POST ant PUT?              

Ваш ответ

Отображаемое имя (по желанию):
Конфиденциальность: Ваш электронный адрес будет использоваться только для отправки уведомлений.
Анти-спам проверка:
Чтобы избежать проверки в будущем, пожалуйста войдите или зарегистрируйтесь.

1 Ответ

0 голосов
от
Ну, вы можете делать все, что вы хотите здесь. Никто не убьет вас, если вы проверите поля в теле запроса и вернете ошибку, если указан
model_id
(или нет). Некоторые ребята используют метод POST для обновления сущностей в API. Если вы хотите быть ближе к стандартам, лучше использовать PATCH для частичных обновлений. Вы можете найти много интересной информации здесь: https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods REST API - PUT vs PATCH с примерами из реальной жизни https://tools.ietf.org/html/rfc7231#section-4.3.4 https://tools.ietf.org/html/rfc5789 Одна важная вещь из 4. источника:   Метод PUT уже определен для перезаписи ресурса   завершить новое тело и не может быть повторно использован для частичных изменений. И еще одно предложение из 3. источника:   Вообще говоря, все детали реализации за интерфейсом ресурса намеренно скрыты сервером.     
Добро пожаловать на сайт ByNets, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...