Коды ошибок
Маленькая инструкция о том, какие коды ошибок в каких случаях мы используем.
Ошибки клиента
Заголовок раздела «Ошибки клиента»400 Bad Request
Описание: Сервер не может обработать запрос из-за неверного синтаксиса. Это может быть вызвано неправильными параметрами или отсутствием обязательных данных.
Использование: Возвращается, когда клиент отправляет некорректный запрос. (полшностью пустой запрос). Или же когда тяжело подобрать другую ошибку 4хх
403 Forbidden
Описание: Сервер понимает запрос, но отказывает в доступе к ресурсу. Это может быть связано с недостаточными правами пользователя.
Использование: Используется, когда клиент пытается получить доступ к защищенному ресурсу без соответствующих прав, например, доступ к административной панели без авторизации. Используется приемущественно в api.
410 Gone
Описание: Запрашиваемый ресурс был удален и больше недоступен. Этот код используется для ресурсов, которые были удалены намеренно.
Использование: Если клиент ссылается на роут или ресурс, который удален, то можно возвращать эту ошибку.
415 Unsupported Media Type
Описание: Сервер отказывается обрабатывать запрос из-за неподдерживаемого типа медиа. Это может произойти, если клиент отправляет данные в формате, который сервер не может обработать.
Использование: Используется, когда клиент отправляет данные в формате, который не поддерживается API, например, отправка XML вместо ожидаемого JSON (проверяем по заголовкам запроса).
422 Unprocessable Content
Описание: Запрос был понятен сервером, но не может быть обработан из-за семантической ошибки. Это часто связано с неправильными данными.
Использование: Возвращается при невалидных данных запроса с клиента (прим. некорректные типы полей в запросе).
429 Too Many Requests
Описание: Клиент превысил лимит запросов за определенный период времени. Это используется для защиты от злоупотреблений.
Использование: Возвращается, когда клиент делает слишком много запросов за короткий промежуток времени, например, при частых попытках входа в систему. (ну пусть будет, но пока что его некуда особо применить).
Ошибки сервера
Заголовок раздела «Ошибки сервера»Надо учитывать, что при 5хх ошибках со стороны клиента уже невозможно получить данные из ответа на запрос, так что стараемся возвращать 4хх.
500 Internal Server Error
Описание: Произошла непредвиденная ошибка на стороне сервера. Это общий код ошибки для обозначения проблем на сервере.
Использование: Используется при любых непредвиденных сбоях в работе сервера или приложений. (Общая ошибка 5хх, лучше стараться полдбирать более узкую ошибку, 500 сервер часто и сам возвращает)
502 Bad Gateway
Описание: Сервер действовал как шлюз и получил недопустимый ответ от вышестоящего сервера. Это может указывать на проблемы с другим сервисом или API.
Использование: Используется, если сервер зависим от другого сервиса и тот недоступен (прим. smtp).