Код состояния HTTP для сбоя внутренней зависимости - PullRequest
0 голосов
/ 09 апреля 2019

Я опишу мою проблему на простом примере, у меня есть 2 таблицы (X & Y):

      Table X             Table Y
------------------       ----------
| id  |   Y_id   |       |   id   | 
------------------       ----------

Мой маршрут API удалит строку из table Y, но что, если эта строка используется таблицей X, например, в этом случае:

      Table X             Table Y
------------------       ----------
| id  |   Y_id   |       |   id   | 
------------------       ----------
|  1  |     1    |       |    1   |
------------------       ----------

Если я запрашиваю удаление строки с идентификатором 1 из table Y, я отклоню этот запрос, поскольку запись используется в table X, каким должен быть код состояния ответа HTTP в этом сценарии?

1 Ответ

1 голос
/ 09 апреля 2019

https://greenbytes.de/tech/webdav/rfc7231.html#status.409:

6.5.8.Конфликт 409

Код состояния 409 (Конфликт) указывает, что запрос не может быть выполнен из-за конфликта с текущим состоянием целевого ресурса.Этот код используется в ситуациях, когда пользователь может разрешить конфликт и повторно отправить запрос.Сервер ДОЛЖЕН генерировать полезную нагрузку, которая включает в себя достаточно информации, чтобы пользователь мог распознать источник конфликта.

Конфликты, скорее всего, возникнут в ответ на запрос PUT.Например, если использовалось управление версиями, а представление, представляющее собой PUT, включало изменения в ресурсе, которые конфликтуют с ресурсами, созданными в результате более раннего (стороннего) запроса, исходный сервер может использовать ответ 409, чтобы указать, что он не может завершитьзапрос.В этом случае представление ответа, скорее всего, будет содержать информацию, полезную для объединения различий на основе истории изменений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...