Top.Mail.Ru
Ответы
Аватар пользователя
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+4

Какой вариант реализации Rest API лучше? Тот, который в случае ошибок шлёт коды 404 и т.п., или другой с 200 и ошибкой?

Есть два подхода обработки сценариев, когда что-то где-то по бизнес логике не нашлось.
Сервер может слать коды 404 в данном случае. Но также может слать 200 с указанием конкретной ошибки как объекта в самом теле ответа. Как вы думаете, какой вариант правильнее?

По дате
По рейтингу

Это религиозный вопрос )
Если клиенту достаточно кодов HTTP, то можно слать и 404 с 500.
Если есть причина думать, что на клиенте будут обрабатываться специфические коды ошибок, то лучше второй подход - с 200 и кодом ошибки в теле ответа.
А можно и совмещать - работать по кодам HTTP, но на будущее предусмотреть в ответе поле кастомного кода.

Аватар пользователя
Оракул

У http кодов есть вполне понятное назначение, которое всем понятно:

Код 200 - означает положительный ответ (ОК)
Код 400 - не корректный запрос от пользователя (нужно изменить запрос и попробовать еще раз)
Код 404 - означает что искомый ресурс не найден (допустим страница пользователя с id xxx)
Код 500 - ошибка на стороне сервера (пользователю ничего делать не нужно, программисты уже занимаются починкой)

Аватар пользователя
Мастер

Ну ты же сам ответил на свой вопрос. Если СЕРВЕР будет отвечать 404, то значит такого файла/метода нет, а вот если отвечает АПИ, то от СЕРВЕРА в любом случае будет ответ 200, но в теле ответа от АПИ нужно указать код ошибки...