Я недавно присоединился к новому проекту. В этом проекте все API-интерфейсы в службе всегда возвращают код состояния 200. Даже если этот ответ должен быть равен 400 или 404, API возвращает код состояния 200.
Я спросил причину, почему API не возвращают другие коды ответов, а программисты сказали мне, что они не используют код ответа. они помещают информацию в тело.
например, есть некоторые пропущенные обязательные поля, они возвращают код состояния ответа 200, но тело возвращает вот так
{"result" : "fail"}
если неавторизованный пользователь пытается получить доступ, код состояния равен 200, тело возвращается так
{"result" : "unautherized"}
То, что я делал раньше, было совсем другим, я всегда указывал код состояния в каждом конкретном случае и пытался вернуть подходящий код состояния и сообщение. Я думал, что это часть протокола HTTP. Тем не менее, они сказали мне, что указание кода состояния, такого как 400, 404, 300, является частью RESTful API, и возвращение всегда 200 - это правильный код состояния, потому что сервер ответил, и он жив. API всегда должны возвращать 200, кроме 500. Потому что, когда сервер умирает, он ничего не может вернуть.
Так вот в чем вопрос.
- Сервер всегда должен возвращать код состояния 200, кроме случаев, когда сервер умирает?
- Указание различных кодов состояния является частью REST API?
- Часто не используется код состояния?