Сервис отвечает 200 OK с телом об ошибке: чем это мешает клиентам и мониторингу
Клиент отправляет POST /orders с полем quantity: -3. Сервис проверяет значение, заказ не создаёт и отвечает так:
HTTP/1.1 200 OK
{"success": false, "error": "quantity must be positive"}
Что не так с таким ответом?
- Ничего страшного: клиент читает поле success, а код ответа — деталь транспорта, её никто не смотрит
- Нужно отвечать 500: любая ситуация, в которой запрос не выполнен, считается ошибкой сервера
- Код ответа — часть контракта: ошибку во входных данных отдают статусом 4xx
- Достаточно писать ошибку в лог: на поведение клиента и мониторинга статус ответа не влияет
