Подтвердить что ты не робот

Какой правильный код состояния ответа для запроса REST POST при обнаружении дубликата?

В моем клиенте RESTful API может попытаться опубликовать информацию, уже находящуюся в базе данных, это не ошибка, скорее то, что клиент может игнорировать, возможно, уведомить пользователя о уже существующей публике.

Теперь я возвращаю 409 Конфликт и уже существующий объект в теле ответа. Я чувствую, что это неверно, потому что:

Запрос не может быть выполнен из-за конфликта с текущим состояние ресурса. Этот код разрешен только в ситуациях, когда ожидается, что пользователь сможет разрешить конфликт и повторно отправьте запрос. Тело ответа ДОЛЖНО включать достаточно информацию для пользователя, чтобы узнать источник конфликта. В идеальном случае объект ответа будет содержать достаточную информацию для пользователь или пользовательский агент для устранения проблемы; однако это может не быть возможно и не требуется. через restpatterns.org

и вообще, похоже, что 409 больше связано с PUT.

Каков правильный ответ в этом случае? Может ли быть 303 См. Раздел "Другие" и "Местоположение"?

4b9b3361

Ответ 1

Я не уверен, что есть правильный ответ. Мы возвращаем 409 с сообщением о том, что это дублированный ресурс. Мы также включаем гипермедиа в этот ресурс. Кажется, вы также можете использовать 400-Bad Request, но это казалось слишком общим. Я мог видеть, что 303 также работает. Я хотел указать, что произошла ошибка, поэтому мы пошли с 409.