|
Какой-то стандартный подход для возврата на клиент ошибок/сообщений об ошибках ?
|
|||
---|---|---|---|
#18+
Подскажите какой-то стандартный подход для возврата на клиент ошибок/сообщений об ошибках/ коды ошибок. Т.е. Не все же решается Http кодами. Не отвечать же на все запросы кодом 400 (Bad Request). Как сообщить клиенту, что что-то идет не так. Речь не об ошибке 500. А о том, чтобы сообщить пользователю что он что-то не корректно ввел и т.д. Ну предположим можем возвращать всегда код 400, но как сообщить дополнительную информацию ? Или лучше возвращать код 200, но в теле ответа будет либо успешный ответ, либо информация об ошибке в виде кода ошибки или сообщения об ошибке. Как правильно ? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2018, 12:35 |
|
Какой-то стандартный подход для возврата на клиент ошибок/сообщений об ошибках ?
|
|||
---|---|---|---|
#18+
WaspNewCore, Коды ошибок подразделяются на разные группы. Ошибки неправильного ввода пользователя не входят в группу ошибок работы приложения, код ответа должен приходить с кодом 200, это совершенно нормальная и предсказуемая ситуация, когда пользователь вводит что-то не то. Никакого "кода ошибки" при этом не должно быть. Механизм валидации это отдельная песня. Стандартного механизма здесь нет. В ASP.NET MVC в классическом исполнении можно использовать подход POST-REDIRECT-GET . В случае неправильного ввода, пользователь получает обратно форму, где соответствующие поля сопровождаются сообщениями об ошибке ввода, и, например, подкрашиваются красным цветом. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2018, 12:42 |
|
Какой-то стандартный подход для возврата на клиент ошибок/сообщений об ошибках ?
|
|||
---|---|---|---|
#18+
WaspNewCoreКак сообщить клиенту, что что-то идет не так. Речь не об ошибке 500. А о том, чтобы сообщить пользователю что он что-то не корректно ввел и т.д. Кто есть пользователь и что конкретно он ввёл? Дайте нормальный пример. К примеру JavaScript-клиент передал в API левый JSON - это именно 400 Bad Request. Передал левый идентификатор, по которому ничего не найдено - это 404 Not Found. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2018, 13:00 |
|
Какой-то стандартный подход для возврата на клиент ошибок/сообщений об ошибках ?
|
|||
---|---|---|---|
#18+
Для примера смотрю как устроена у Яндекса. 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). ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2018, 13:08 |
|
Какой-то стандартный подход для возврата на клиент ошибок/сообщений об ошибках ?
|
|||
---|---|---|---|
#18+
WaspNewCoreКак вообще сочетать Http коды ошибок, с некими внутренними кодами ошибок (те же коды 500 или 401). HTTP ошибки это ошибки транспорта. Вы их смешали с ошибками по бизнес логике ("Данный пользователь отсутствует"). Поэтому тема и вопрос - странный. ... Как именно передавать ошибку от сервера клиенту - зависит от архитектуры проекта. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2018, 13:23 |
|
Какой-то стандартный подход для возврата на клиент ошибок/сообщений об ошибках ?
|
|||
---|---|---|---|
#18+
Petro123Как именно передавать ошибку от сервера клиенту - зависит от архитектуры проекта. Ну вот я и спрашиваю же про практики. Чтобы выбрать. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2018, 13:32 |
|
Какой-то стандартный подход для возврата на клиент ошибок/сообщений об ошибках ?
|
|||
---|---|---|---|
#18+
Petro123Вы их смешали с ошибками по бизнес логике ("Данный пользователь отсутствует"). И вот тут кстати еще вопрос. Ошибка 404 (NotFound) применима к Web Api ? Этот код стоит возвращать исключительно, если не найден некий url, или еще и в ситуации, если не найден искомый Юзер/Документ ? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2018, 13:35 |
|
Какой-то стандартный подход для возврата на клиент ошибок/сообщений об ошибках ?
|
|||
---|---|---|---|
#18+
WaspNewCorePetro123Как именно передавать ошибку от сервера клиенту - зависит от архитектуры проекта. Ну вот я и спрашиваю же про практики. Чтобы выбрать. Пиши версию и архитектуру своего проекта. По всем вариантам никто обзор делать не будет. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2018, 13:40 |
|
Какой-то стандартный подход для возврата на клиент ошибок/сообщений об ошибках ?
|
|||
---|---|---|---|
#18+
WaspNewCorePetro123Вы их смешали с ошибками по бизнес логике ("Данный пользователь отсутствует"). И вот тут кстати еще вопрос. Ошибка 404 (NotFound) применима к Web Api ? Этот код стоит возвращать исключительно, если не найден некий url, или еще и в ситуации, если не найден искомый Юзер/Документ ? Ошибки транспорта не пробрасываются наверх к юзверю. Они остаются в системном коде внизу. (Инкапсуляция, ООП) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2018, 13:41 |
|
Какой-то стандартный подход для возврата на клиент ошибок/сообщений об ошибках ?
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2018, 13:43 |
|
Какой-то стандартный подход для возврата на клиент ошибок/сообщений об ошибках ?
|
|||
---|---|---|---|
#18+
Petro123WaspNewCoreпропущено... И вот тут кстати еще вопрос. Ошибка 404 (NotFound) применима к Web Api ? Этот код стоит возвращать исключительно, если не найден некий url, или еще и в ситуации, если не найден искомый Юзер/Документ ? Ошибки транспорта не пробрасываются наверх к юзверю. Они остаются в системном коде внизу. (Инкапсуляция, ООП) Чего? Пользователь запрашивает несуществующий ресурс, ему отдаётся 404 Not Found. Пользователь запрашивает ресурс, к которому ему ограничен доступ, ему отдаётся 403 Forbidden. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2018, 13:48 |
|
Какой-то стандартный подход для возврата на клиент ошибок/сообщений об ошибках ?
|
|||
---|---|---|---|
#18+
skyANA, я к тебе обращался? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2018, 13:49 |
|
Какой-то стандартный подход для возврата на клиент ошибок/сообщений об ошибках ?
|
|||
---|---|---|---|
#18+
Petro123skyANA, я к тебе обращался? не но у меня же те же самые вопросы ) "И вот тут кстати еще вопрос. Ошибка 404 (NotFound) применима к Web Api ? Этот код стоит возвращать исключительно, если не найден некий url, или еще и в ситуации, если не найден искомый Юзер/Документ ?" тоже самое с ошибками 401/403. ну и вот собственно как все это сочетать с ошибками логики приложения - типа "попытка добавить не корректный тип документа" Petro123Пиши версию и архитектуру своего проекта. По всем вариантам никто обзор делать не будет. Бэкэнд - Asp.net Core. Фронтэнд - Ангуляр. Rest подход. Обычные бизнес задачки по ведению пользователей, их документов и прочего. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2018, 13:57 |
|
Какой-то стандартный подход для возврата на клиент ошибок/сообщений об ошибках ?
|
|||
---|---|---|---|
#18+
WaspNewCoreне но у меня же те же самые вопросы ) ну дак вам я и отвечу. А с ним ответы всегда приводят к одному результату. WaspNewCoreОшибка 404 (NotFound) применима к Web Api ? да. Т.к. это API, и если это API для рест. Есть API для WCF, WinAPI32 и т.д. )) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2018, 14:02 |
|
Какой-то стандартный подход для возврата на клиент ошибок/сообщений об ошибках ?
|
|||
---|---|---|---|
#18+
WaspNewCoreБэкэнд - Asp.net Core. Фронтэнд - Ангуляр. Rest подход. Обычные бизнес задачки по ведению пользователей, их документов и прочего. В ангуляре бизнес логика, значит он всё перехватывает и выводит своё. Ошибки типа "некорректный тип" не надо допускать вообще. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2018, 14:04 |
|
Какой-то стандартный подход для возврата на клиент ошибок/сообщений об ошибках ?
|
|||
---|---|---|---|
#18+
ок. В общем думаю оставить коды 400, 401, 403, 500. Но также нужно определится - в ситуации бизнес ошибки, какой код должен возвращаться ? 200 и в теле описании ошибки да ? Правда не очень ясно, что делать с NotFound. Оставлять ли этот код или переносить в бизнес ошибки ? наверное лучше в бизнес ошибки - больше гибкости. Т.к. NotFound NotFound'у рознь: может при добавлении юзера не удалось записать его в указанный отдел, т.к. такого отдела нет. Или нет такого типа документа и т.д. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2018, 14:06 |
|
Какой-то стандартный подход для возврата на клиент ошибок/сообщений об ошибках ?
|
|||
---|---|---|---|
#18+
WaspNewCoreоставить что значит оставить? У вас сам веб сервер отправит ошибку без вашего согласия. Вы обязаны их обработать все на клиенте. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2018, 14:11 |
|
Какой-то стандартный подход для возврата на клиент ошибок/сообщений об ошибках ?
|
|||
---|---|---|---|
#18+
WaspNewCoreNotFound NotFound'у рознь: давайте конкретный пример с урлом по REST ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2018, 14:12 |
|
Какой-то стандартный подход для возврата на клиент ошибок/сообщений об ошибках ?
|
|||
---|---|---|---|
#18+
WaspNewCore, Совет! Изучайте совместно с кодом. Давайте ангуляр, и вывод скрина что я дал по ошибке 404. А потом продолжим. Или вы не программист а постановщик? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2018, 14:15 |
|
Какой-то стандартный подход для возврата на клиент ошибок/сообщений об ошибках ?
|
|||
---|---|---|---|
#18+
Petro123, Я программист бэкэнда. Фронтэндер другой программист. Моя задача предоставить удобный API. Оставить коды - я имел ввиду, что можно по подобию яндекса завернуть все http-шные коды в коды приложения. Вон у них код ошибки "unknown — произошел временный сбой или ошибка работы API (повторите запрос позже)." Явно смахивает на завернутую ошибку 500. И я еще не нашел у них в доке пример того, как обрабатываются ошибки 401/403. Могу предположить, что это у них может быть обернуто в бизнес ошибку. Есть некая ошибка "no_token (no_domain, no_ip ) — не передан обязательный параметр." но это речь об обязательных параметрах. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2018, 14:26 |
|
Какой-то стандартный подход для возврата на клиент ошибок/сообщений об ошибках ?
|
|||
---|---|---|---|
#18+
Пример запроса: Код: c# 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2018, 14:27 |
|
Какой-то стандартный подход для возврата на клиент ошибок/сообщений об ошибках ?
|
|||
---|---|---|---|
#18+
WaspNewCoreпо подобию яндекса завернуть все http-шные коды в коды приложения Нет показаний к усложнению. IMHO "Сложнее всего в мире достигнуть простоты — это крайняя граница опыта и последнее усилие гения". © George Sand. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2018, 14:36 |
|
Какой-то стандартный подход для возврата на клиент ошибок/сообщений об ошибках ?
|
|||
---|---|---|---|
#18+
Petro123skyANA, я к тебе обращался?Ты пишешь на публичном форуме. Хочешь приватной беседы, пиши ТСу на почту, в Скайп. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2018, 15:35 |
|
Какой-то стандартный подход для возврата на клиент ошибок/сообщений об ошибках ?
|
|||
---|---|---|---|
#18+
Petro123WaspNewCoreне но у меня же те же самые вопросы ) ну дак вам я и отвечу. А с ним ответы всегда приводят к одному результату. Ага, спасибо мне автор топика говорит ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2018, 15:36 |
|
Какой-то стандартный подход для возврата на клиент ошибок/сообщений об ошибках ?
|
|||
---|---|---|---|
#18+
WaspNewCorePetro123, Я программист бэкэнда. Фронтэндер другой программист. Моя задача предоставить удобный API. Оставить коды - я имел ввиду, что можно по подобию яндекса завернуть все http-шные коды в коды приложения. Вон у них код ошибки "unknown — произошел временный сбой или ошибка работы API (повторите запрос позже)." Явно смахивает на завернутую ошибку 500. И я еще не нашел у них в доке пример того, как обрабатываются ошибки 401/403. Могу предположить, что это у них может быть обернуто в бизнес ошибку. Есть некая ошибка "no_token (no_domain, no_ip ) — не передан обязательный параметр." но это речь об обязательных параметрах. 500 Internal Server Error советую обрабатывать по возможности на сервере. Это вообще хороший индикатор того, что у вас что-то в приложении поломалось. Если после выкатки очередной версии пошёл вал 500-х, значит где-то у нас серъёзная проблема нарисовалась. Но все ошибки оборачивать тоже не стоит, так вы их просто перестанете видеть. Хотя возможно у вас там развитый мониторинг и логирование как у Яндекса? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2018, 15:39 |
|
|
start [/forum/topic.php?fid=18&fpage=18&tid=1355117]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
50ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
273ms |
get tp. blocked users: |
2ms |
others: | 260ms |
total: | 632ms |
0 / 0 |