powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Какой-то стандартный подход для возврата на клиент ошибок/сообщений об ошибках ?
25 сообщений из 370, страница 1 из 15
Какой-то стандартный подход для возврата на клиент ошибок/сообщений об ошибках ?
    #39710853
WaspNewCore
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите какой-то стандартный подход для возврата на клиент ошибок/сообщений об ошибках/ коды ошибок.

Т.е. Не все же решается Http кодами. Не отвечать же на все запросы кодом 400 (Bad Request).
Как сообщить клиенту, что что-то идет не так. Речь не об ошибке 500. А о том, чтобы сообщить пользователю что он что-то не корректно ввел и т.д.

Ну предположим можем возвращать всегда код 400, но как сообщить дополнительную информацию ?
Или лучше возвращать код 200, но в теле ответа будет либо успешный ответ, либо информация об ошибке в виде кода ошибки или сообщения об ошибке.

Как правильно ?
...
Рейтинг: 0 / 0
Какой-то стандартный подход для возврата на клиент ошибок/сообщений об ошибках ?
    #39710863
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WaspNewCore,

Коды ошибок подразделяются на разные группы. Ошибки неправильного ввода пользователя не входят в группу ошибок работы приложения, код ответа должен приходить с кодом 200, это совершенно нормальная и предсказуемая ситуация, когда пользователь вводит что-то не то.

Никакого "кода ошибки" при этом не должно быть. Механизм валидации это отдельная песня. Стандартного механизма здесь нет.

В ASP.NET MVC в классическом исполнении можно использовать подход POST-REDIRECT-GET . В случае неправильного ввода, пользователь получает обратно форму, где соответствующие поля сопровождаются сообщениями об ошибке ввода, и, например, подкрашиваются красным цветом.
...
Рейтинг: 0 / 0
Какой-то стандартный подход для возврата на клиент ошибок/сообщений об ошибках ?
    #39710879
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WaspNewCoreКак сообщить клиенту, что что-то идет не так. Речь не об ошибке 500. А о том, чтобы сообщить пользователю что он что-то не корректно ввел и т.д.
Кто есть пользователь и что конкретно он ввёл? Дайте нормальный пример.

К примеру JavaScript-клиент передал в API левый JSON - это именно 400 Bad Request.
Передал левый идентификатор, по которому ничего не найдено - это 404 Not Found.
...
Рейтинг: 0 / 0
Какой-то стандартный подход для возврата на клиент ошибок/сообщений об ошибках ?
    #39710881
WaspNewCore
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Для примера смотрю как устроена у Яндекса.

https://tech.yandex.ru/pdd/doc/reference/email-ml-add-docpage/#emails-detailed
https://tech.yandex.ru/pdd/doc/reference/import-check-imports-docpage/#emails-detailed

У них сделано странно, на мой взгляд. Они вообще, похоже, отказались от Httpшных кодов ошибок. В том числе от ошибок 500 и от ошибок 401/403:

unknown — произошел временный сбой или ошибка работы API (повторите запрос позже).
no_token (no_domain, no_ip ) — не передан обязательный параметр.


И вот мне самому интересно. Как вообще сочетать Http коды ошибок, с некими внутренними кодами ошибок (те же коды 500 или 401).
...
Рейтинг: 0 / 0
Какой-то стандартный подход для возврата на клиент ошибок/сообщений об ошибках ?
    #39710891
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WaspNewCoreКак вообще сочетать Http коды ошибок, с некими внутренними кодами ошибок (те же коды 500 или 401).
HTTP ошибки это ошибки транспорта.
Вы их смешали с ошибками по бизнес логике ("Данный пользователь отсутствует").
Поэтому тема и вопрос - странный.
...
Как именно передавать ошибку от сервера клиенту - зависит от архитектуры проекта.
...
Рейтинг: 0 / 0
Какой-то стандартный подход для возврата на клиент ошибок/сообщений об ошибках ?
    #39710900
WaspNewCore
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123Как именно передавать ошибку от сервера клиенту - зависит от архитектуры проекта.

Ну вот я и спрашиваю же про практики. Чтобы выбрать.
...
Рейтинг: 0 / 0
Какой-то стандартный подход для возврата на клиент ошибок/сообщений об ошибках ?
    #39710902
WaspNewCore
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123Вы их смешали с ошибками по бизнес логике ("Данный пользователь отсутствует").


И вот тут кстати еще вопрос. Ошибка 404 (NotFound) применима к Web Api ?
Этот код стоит возвращать исключительно, если не найден некий url, или еще и в ситуации, если не найден искомый Юзер/Документ ?
...
Рейтинг: 0 / 0
Какой-то стандартный подход для возврата на клиент ошибок/сообщений об ошибках ?
    #39710905
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WaspNewCorePetro123Как именно передавать ошибку от сервера клиенту - зависит от архитектуры проекта.
Ну вот я и спрашиваю же про практики. Чтобы выбрать.
Пиши версию и архитектуру своего проекта. По всем вариантам никто обзор делать не будет.
...
Рейтинг: 0 / 0
Какой-то стандартный подход для возврата на клиент ошибок/сообщений об ошибках ?
    #39710906
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WaspNewCorePetro123Вы их смешали с ошибками по бизнес логике ("Данный пользователь отсутствует").


И вот тут кстати еще вопрос. Ошибка 404 (NotFound) применима к Web Api ?
Этот код стоит возвращать исключительно, если не найден некий url, или еще и в ситуации, если не найден искомый Юзер/Документ ?
Ошибки транспорта не пробрасываются наверх к юзверю.
Они остаются в системном коде внизу.
(Инкапсуляция, ООП)
...
Рейтинг: 0 / 0
Какой-то стандартный подход для возврата на клиент ошибок/сообщений об ошибках ?
    #39710908
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WaspNewCore,
Это юзверю после перехвата:
...
Рейтинг: 0 / 0
Какой-то стандартный подход для возврата на клиент ошибок/сообщений об ошибках ?
    #39710911
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123WaspNewCoreпропущено...


И вот тут кстати еще вопрос. Ошибка 404 (NotFound) применима к Web Api ?
Этот код стоит возвращать исключительно, если не найден некий url, или еще и в ситуации, если не найден искомый Юзер/Документ ?
Ошибки транспорта не пробрасываются наверх к юзверю.
Они остаются в системном коде внизу.
(Инкапсуляция, ООП)
Чего?

Пользователь запрашивает несуществующий ресурс, ему отдаётся 404 Not Found.
Пользователь запрашивает ресурс, к которому ему ограничен доступ, ему отдаётся 403 Forbidden.
...
Рейтинг: 0 / 0
Какой-то стандартный подход для возврата на клиент ошибок/сообщений об ошибках ?
    #39710914
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,
я к тебе обращался?
...
Рейтинг: 0 / 0
Какой-то стандартный подход для возврата на клиент ошибок/сообщений об ошибках ?
    #39710917
WaspNewCore
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123skyANA,
я к тебе обращался?

не но у меня же те же самые вопросы )

"И вот тут кстати еще вопрос. Ошибка 404 (NotFound) применима к Web Api ?
Этот код стоит возвращать исключительно, если не найден некий url, или еще и в ситуации, если не найден искомый Юзер/Документ ?"

тоже самое с ошибками 401/403.

ну и вот собственно как все это сочетать с ошибками логики приложения - типа "попытка добавить не корректный тип документа"


Petro123Пиши версию и архитектуру своего проекта. По всем вариантам никто обзор делать не будет.

Бэкэнд - Asp.net Core. Фронтэнд - Ангуляр. Rest подход.
Обычные бизнес задачки по ведению пользователей, их документов и прочего.
...
Рейтинг: 0 / 0
Какой-то стандартный подход для возврата на клиент ошибок/сообщений об ошибках ?
    #39710920
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WaspNewCoreне но у меня же те же самые вопросы )
ну дак вам я и отвечу. А с ним ответы всегда приводят к одному результату.

WaspNewCoreОшибка 404 (NotFound) применима к Web Api ?
да. Т.к. это API, и если это API для рест.
Есть API для WCF, WinAPI32 и т.д. ))
...
Рейтинг: 0 / 0
Какой-то стандартный подход для возврата на клиент ошибок/сообщений об ошибках ?
    #39710922
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WaspNewCoreБэкэнд - Asp.net Core. Фронтэнд - Ангуляр. Rest подход.
Обычные бизнес задачки по ведению пользователей, их документов и прочего.
В ангуляре бизнес логика, значит он всё перехватывает и выводит своё.
Ошибки типа "некорректный тип" не надо допускать вообще.
...
Рейтинг: 0 / 0
Какой-то стандартный подход для возврата на клиент ошибок/сообщений об ошибках ?
    #39710926
WaspNewCore
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ок. В общем думаю оставить коды 400, 401, 403, 500.

Но также нужно определится - в ситуации бизнес ошибки, какой код должен возвращаться ? 200 и в теле описании ошибки да ?
Правда не очень ясно, что делать с NotFound. Оставлять ли этот код или переносить в бизнес ошибки ? наверное лучше в бизнес ошибки - больше гибкости. Т.к. NotFound NotFound'у рознь: может при добавлении юзера не удалось записать его в указанный отдел, т.к. такого отдела нет. Или нет такого типа документа и т.д.
...
Рейтинг: 0 / 0
Какой-то стандартный подход для возврата на клиент ошибок/сообщений об ошибках ?
    #39710931
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WaspNewCoreоставить
что значит оставить?
У вас сам веб сервер отправит ошибку без вашего согласия.
Вы обязаны их обработать все на клиенте.
...
Рейтинг: 0 / 0
Какой-то стандартный подход для возврата на клиент ошибок/сообщений об ошибках ?
    #39710934
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WaspNewCoreNotFound NotFound'у рознь:
давайте конкретный пример с урлом по REST
...
Рейтинг: 0 / 0
Какой-то стандартный подход для возврата на клиент ошибок/сообщений об ошибках ?
    #39710936
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WaspNewCore,
Совет!
Изучайте совместно с кодом.
Давайте ангуляр, и вывод скрина что я дал по ошибке 404.
А потом продолжим.
Или вы не программист а постановщик?
...
Рейтинг: 0 / 0
Какой-то стандартный подход для возврата на клиент ошибок/сообщений об ошибках ?
    #39710947
WaspNewCore
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123,

Я программист бэкэнда. Фронтэндер другой программист.
Моя задача предоставить удобный API.

Оставить коды - я имел ввиду, что можно по подобию яндекса завернуть все http-шные коды в коды приложения. Вон у них код ошибки "unknown — произошел временный сбой или ошибка работы API (повторите запрос позже)." Явно смахивает на завернутую ошибку 500.

И я еще не нашел у них в доке пример того, как обрабатываются ошибки 401/403. Могу предположить, что это у них может быть обернуто в бизнес ошибку. Есть некая ошибка "no_token (no_domain, no_ip ) — не передан обязательный параметр." но это речь об обязательных параметрах.
...
Рейтинг: 0 / 0
Какой-то стандартный подход для возврата на клиент ошибок/сообщений об ошибках ?
    #39710948
WaspNewCore
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пример запроса:

Код: c#
1.
2.
HttpGet
api/customers/7
...
Рейтинг: 0 / 0
Какой-то стандартный подход для возврата на клиент ошибок/сообщений об ошибках ?
    #39710952
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WaspNewCoreпо подобию яндекса завернуть все http-шные коды в коды приложения
Нет показаний к усложнению.
IMHO
"Сложнее всего в мире достигнуть простоты — это крайняя граница опыта и последнее усилие гения". © George Sand.
...
Рейтинг: 0 / 0
Какой-то стандартный подход для возврата на клиент ошибок/сообщений об ошибках ?
    #39710985
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123skyANA,
я к тебе обращался?Ты пишешь на публичном форуме.
Хочешь приватной беседы, пиши ТСу на почту, в Скайп.
...
Рейтинг: 0 / 0
Какой-то стандартный подход для возврата на клиент ошибок/сообщений об ошибках ?
    #39710988
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123WaspNewCoreне но у меня же те же самые вопросы )
ну дак вам я и отвечу. А с ним ответы всегда приводят к одному результату.
Ага, спасибо мне автор топика говорит
...
Рейтинг: 0 / 0
Какой-то стандартный подход для возврата на клиент ошибок/сообщений об ошибках ?
    #39710992
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WaspNewCorePetro123,

Я программист бэкэнда. Фронтэндер другой программист.
Моя задача предоставить удобный API.

Оставить коды - я имел ввиду, что можно по подобию яндекса завернуть все http-шные коды в коды приложения. Вон у них код ошибки "unknown — произошел временный сбой или ошибка работы API (повторите запрос позже)." Явно смахивает на завернутую ошибку 500.

И я еще не нашел у них в доке пример того, как обрабатываются ошибки 401/403. Могу предположить, что это у них может быть обернуто в бизнес ошибку. Есть некая ошибка "no_token (no_domain, no_ip ) — не передан обязательный параметр." но это речь об обязательных параметрах.
500 Internal Server Error советую обрабатывать по возможности на сервере.
Это вообще хороший индикатор того, что у вас что-то в приложении поломалось.

Если после выкатки очередной версии пошёл вал 500-х, значит где-то у нас серъёзная проблема нарисовалась.
Но все ошибки оборачивать тоже не стоит, так вы их просто перестанете видеть.

Хотя возможно у вас там развитый мониторинг и логирование как у Яндекса?
...
Рейтинг: 0 / 0
25 сообщений из 370, страница 1 из 15
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Какой-то стандартный подход для возврата на клиент ошибок/сообщений об ошибках ?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]