Всем привет! Подскажите, пожалуйста, какие коды ошибок возвращать от доменного слоя (Domain Exeption) и ошибок валидации. Мне кажется, что для доменых ошибок 400 или 409, а для валидации 422. Или лучше и там и там 422?
Договаривайтесь. В большинстве своем нет необходимости сильно детализировать ошибки, особенно на старте проекта. А вообще это все абсолютно разные ошибки, например:
400 - ошибка синтаксиса (например мы ждем json, а присылают что угодно кроме него)
422 - ошибка семантики (с запросом все хорошо, но объект не проходит вариацию, к примеру)
409 - ошибка изменения состояния (изменяем объект версии 123, а пока мы заполняли форму кто-то его уже обновил и сейчас версия 124. привет конфликт)
pro-dev, по ситуации. вот сейчас я возьму из головы и скажу что за ошибка произошла?) Domain Layer сломался? не отвалидировал? не доступен? мы сейчас не знаем
Иван Шумов, Например, есть такая доменная ошибка "Пользователь уже существует", "Токен просрочен", "Пользователь уже активирован" ... Их с каким кодом?
как то все поверхностно
400 - ошибка валидации
401 - неавторизован
404 - нет записи
200 - успешно получено
201 - создано успешно
204 - обновлено успешно, удалено
как то так
А почему 422 для валидации не подходит? Мне кажется это, что нужно. 400 это неправильный запрос структуры. В нашем случае 422 это структура правильна, а данные не валидны
Егор Живагин, это понятно. Но всё равно есть какая-то хорошая практика? Просто сейчас с frontend dev обсуждаем. Он говорит что нужна ошибка 422 для валидации и 409 для domain. Я же сделал везде 400. Как быть?
pro-dev, Я считаю правильным вариантом, для каждой ошибки использовать соответствующей ей код, в ответе, что вы отменили как решение - все правильно написано.