Size: a a a

NestJS — русскоязычное сообщество

2021 February 03

NM

Nikita Machekhin in NestJS — русскоязычное сообщество
Тогда это 500 ошибки
источник

D

Drop in NestJS — русскоязычное сообщество
а должны ли мы такие вещи на клиент кидать? Логично что да, но если к примеру исключение падает в фильтр, мы же не хотим к примеру на клиент отдать ошибку от бд с ее струкурой и выдаем просто код 500 и сообщение что что-то не так?
источник

NM

Nikita Machekhin in NestJS — русскоязычное сообщество
Drop
а должны ли мы такие вещи на клиент кидать? Логично что да, но если к примеру исключение падает в фильтр, мы же не хотим к примеру на клиент отдать ошибку от бд с ее струкурой и выдаем просто код 500 и сообщение что что-то не так?
Не должны
По этому фильтр используется не просто как прокидыватель ошибок на клиент, он фильтрует ошибки, и если получает непредвиденную ошибку, логирует её, а клиенту отдает пустышку по типу 500 SERVER_ERROR
источник

JB

Joe Beretta in NestJS — русскоязычное сообщество
Drop
а если не клиент накосячил, а условно на беке не верный запрос к бд
Разве он не в результате запроса от клиента произошел (кривой запрос в бд). => Это валидация полей запроса)
источник

D

Drop in NestJS — русскоязычное сообщество
А если исключение бизнес логики?

Типо условно бек сходдил к другому сервису и проверил что заказа нет, и выдал исключение на то что такого заказа нет?

Ошибка же вроде не клиентаа, запрос его верен, но сторонний сервис сказал что заказа нет
источник

D

Drop in NestJS — русскоязычное сообщество
Или при реигстрации проверка что юзер уже существует врооде как 400 но запрос тоо верный
источник

NM

Nikita Machekhin in NestJS — русскоязычное сообщество
Drop
А если исключение бизнес логики?

Типо условно бек сходдил к другому сервису и проверил что заказа нет, и выдал исключение на то что такого заказа нет?

Ошибка же вроде не клиентаа, запрос его верен, но сторонний сервис сказал что заказа нет
Если с клиента прислали невалидный айдишник заказа, это ошибка клиента, не так важно где это выяснилось
источник

D

Dmitriy in NestJS — русскоязычное сообщество
400 - ошибка валидации
404 - невалидный айдишник заказа (не существует = not found = 404)
500 - отвалилось что-то на сервере
источник

D

Dmitriy in NestJS — русскоязычное сообщество
Drop
А если исключение бизнес логики?

Типо условно бек сходдил к другому сервису и проверил что заказа нет, и выдал исключение на то что такого заказа нет?

Ошибка же вроде не клиентаа, запрос его верен, но сторонний сервис сказал что заказа нет
Если исключение бизнес-логики, то ловишь в контроллере и в catch выбрасываешь HttpException с нужным кодом (зависит от ситуации)
источник

D

Dmitriy in NestJS — русскоязычное сообщество
Либо в фильтре ловишь. Но я в контроллере ловлю
источник

D

Drop in NestJS — русскоязычное сообщество
А 403 не используете?)
Был случай когда мне доказывали что он же есть, че его не использовать бы)
источник

D

Dmitriy in NestJS — русскоязычное сообщество
Drop
А 403 не используете?)
Был случай когда мне доказывали что он же есть, че его не использовать бы)
Естественно, использую. Например, если дёрнули приватное API без токена
источник

D

Dmitriy in NestJS — русскоязычное сообщество
Либо попытка доступа к чужому ресурсу (типа решил чужой пароль сменить и т.п.)
источник

D

Dmitriy in NestJS — русскоязычное сообщество
источник

D

Dmitriy in NestJS — русскоязычное сообщество
Я не представляю, как можно 403 не использовать. Точнее, не представляю, чем заменить. Не 200 ж
источник

D

Drop in NestJS — русскоязычное сообщество
Dmitriy
Я не представляю, как можно 403 не использовать. Точнее, не представляю, чем заменить. Не 200 ж
Сорян опечатался, там не 403 был, а код который обозначает не верную структуру запроса
источник

D

Dmitriy in NestJS — русскоязычное сообщество
Drop
Сорян опечатался, там не 403 был, а код который обозначает не верную структуру запроса
400 - bad request? Да, использую. Кидаю 400, если юзер отправил данные, которые не прошли валидацию
источник

D

Drop in NestJS — русскоязычное сообщество
Dmitriy
400 - bad request? Да, использую. Кидаю 400, если юзер отправил данные, которые не прошли валидацию
Не именно что он не 400
источник

D

Drop in NestJS — русскоязычное сообщество
У компа буду, поищу что за код был
источник

D

Drop in NestJS — русскоязычное сообщество
Там он весьма специфический
источник