Есть отдельный php-сервер, который может отсылать сообщения конкретным пользователям в этот чат.
Для этого он отсылает POST-запрос на nodejs-сервер с указанием кому (user_id) и что (тело сообщения) отправить.
Далее сервер чата ищет юзера с нужным user_id и отсылает ему принятое сообщение.
После успешной отправки он отвечает php-серверу 200-м статусом сообщая, что сообщение отправлено адресату.
Вопрос в том Каким статус-кодом ответить php-серверу в случае если сервер чата не нашел пользователя с таким user_id.
404 (Not Found) - не годится - до ресурса то мы достучались. 500 (Internal Server Error) - тоже нет - сервер то не сломался 200 (Ok) - ну какой же тут "ok" если сообщение не отправлено адресату.
примечание Пока склоняюсь к обычному 200 но в теле передавать свой статус: "success" или "error" с сообщением объясняющем причину ошибки. Ну а на стороне php разбирать тело ответа и принимать решение что делать дальше.
Ответ: Придется использовать вариант из примечания выше. Остальные варианты не убедительны.
Пока склоняюсь к обычному 200 но в теле передавать свой статус: "success" или "error" с сообщением объясняющем причину ошибки. Ну а на стороне php разбирать тело ответа и принимать решение что делать дальше.
Многие разработчики апи (включая меня) так и поступают.
Кстати, да 404 и 500 говорят об ошибках самого сервера. Если приложение нормально отработало, то код должен быть 200. Неверный результат - это проблема бизнеслогики, а не сервера.