Исправьте код состояния для отправки запроса HTTP POST, если указанный идентификатор не соответствует объекту в базе данных. - PullRequest
0 голосов
/ 16 мая 2019

Допустим, у меня есть конечная точка в моем API со следующим URL:

www.example.com/api/create-order-for-restaurant/

Теперь в моем POST-запросе я отправляю следующие данные:

{
    "restaurant_id": 43,
    "order": {...}
}

Допустим, ресторан с идентификатором 43 не существует в моей базе данных. Какой должен быть соответствующий код состояния HTTP, который должен быть отправлен обратно клиенту?

Я в замешательстве, если мне следует отправить обратно 404 или 500.

1 Ответ

2 голосов
/ 16 мая 2019

Это ошибка клиента, поскольку клиент указал несуществующий restaurant_id.

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

  • 422 - можно считать правильным. JSON является синтаксическим анализатором, он просто содержит неверную информацию.
  • 409 - можно считать правильным, если клиент может сначала создать ресторан с этим конкретным идентификатором. Я предполагаю, что сервер контролирует идентификаторы, поэтому по этой причине он, вероятно, не здесь.

Итак, 400, 422 - это хорошо. 500 нет. 500 означает, что существует проблема на стороне сервера, но, насколько я могу судить, вы описываете ситуацию, когда клиент использовал неправильный restaurant_id.

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