|
Какой-то стандартный подход для возврата на клиент ошибок/сообщений об ошибках ?
|
|||
---|---|---|---|
#18+
AddxЕсли Вы не знаете, что такое CRUD операции и API, построенное на нем, то Вам это не нужно. Просто проигнорируйте. не проигнорирую. раз уж сказали А, говорите Б: - что такое "чистые CRUD операции"? - почему API для "чистых CRUD операций" в контексте темы топика как-то принципиально отличается? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.10.2018, 18:23 |
|
Какой-то стандартный подход для возврата на клиент ошибок/сообщений об ошибках ?
|
|||
---|---|---|---|
#18+
love_bachAddxЕсли Вы не знаете, что такое CRUD операции и API, построенное на нем, то Вам это не нужно. Просто проигнорируйте. не проигнорирую. раз уж сказали А, говорите Б: - что такое "чистые CRUD операции"? - почему API для "чистых CRUD операций" в контексте темы топика как-то принципиально отличается? Это вопросы для темы "Программирование". К ASP.NET (и к кодам ошибок) непосредственного отношения не имеют. CRUD операции - это устоявшийся термин. Вы же не просите объяснить, что такое ASP или .NET? Одно дело, когда Вас интересует неочевидный момент, другое дело - если Вы не знаете базовых вещей (в рамках этой темы, это не обвинение в невежестве вообще). Какой смысл читать лекции? Если же вопрос относился к слову "чистый", то тоже странно, что это непонятно. Словосочетания "написано на чистом C#(или С, или ассемблере)" тоже вызывают вопросы? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.10.2018, 19:54 |
|
Какой-то стандартный подход для возврата на клиент ошибок/сообщений об ошибках ?
|
|||
---|---|---|---|
#18+
Addxlove_bachпропущено... не проигнорирую. раз уж сказали А, говорите Б: - что такое "чистые CRUD операции"? - почему API для "чистых CRUD операций" в контексте темы топика как-то принципиально отличается? Это вопросы для темы "Программирование". К ASP.NET (и к кодам ошибок) непосредственного отношения не имеют. CRUD операции - это устоявшийся термин. Вы же не просите объяснить, что такое ASP или .NET? Одно дело, когда Вас интересует неочевидный момент, другое дело - если Вы не знаете базовых вещей (в рамках этой темы, это не обвинение в невежестве вообще). Какой смысл читать лекции? Если же вопрос относился к слову "чистый", то тоже странно, что это непонятно. Словосочетания "написано на чистом C#(или С, или ассемблере)" тоже вызывают вопросы? золотое правило: если нечего сказать по теме, лучше ничего не говрить ... |
|||
:
Нравится:
Не нравится:
|
|||
04.10.2018, 19:56 |
|
Какой-то стандартный подход для возврата на клиент ошибок/сообщений об ошибках ?
|
|||
---|---|---|---|
#18+
love_bachзолотое правило: если нечего сказать по теме, лучше ничего не говрить Зачем задавать вопросы, если не хотите, чтобы на них отвечали? Я изначально предложил Вам проигнорировать свой ответ, но Вы начали задавать вопросы. Я дал Вам советы, и не моя вина, что Вам они не понравились. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.10.2018, 20:11 |
|
Какой-то стандартный подход для возврата на клиент ошибок/сообщений об ошибках ?
|
|||
---|---|---|---|
#18+
Addxlove_bachзолотое правило: если нечего сказать по теме, лучше ничего не говрить Зачем задавать вопросы, если не хотите, чтобы на них отвечали ? Я изначально предложил Вам проигнорировать свой ответ, но Вы начали задавать вопросы. Я дал Вам советы, и не моя вина, что Вам они не понравились. ответы в стиле Petro123 меня не интересуют. они повышают энтропию вселенной и больше они ни на что не годятся. а вам задано 2 конкретных вопроса. возможно, ответ на них будет для меня интересен ... |
|||
:
Нравится:
Не нравится:
|
|||
04.10.2018, 20:15 |
|
Какой-то стандартный подход для возврата на клиент ошибок/сообщений об ошибках ?
|
|||
---|---|---|---|
#18+
monstrUкартина на форуме повторяется 1. задают вопрос 2. дают свой вариант ответа поступает гневный пост "#всехерня #такнельзя #вывседураки" просят дай твой вариант ответа - пишут иди в гугл. снова спрошу - как надо то? как надо возвращать бизнес ошибки из rest сервиса ? не обращай внимания на этого дилетанта, "как правильно" у тебя было хорошо расписано ... |
|||
:
Нравится:
Не нравится:
|
|||
05.10.2018, 02:13 |
|
Какой-то стандартный подход для возврата на клиент ошибок/сообщений об ошибках ?
|
|||
---|---|---|---|
#18+
love_bach, имхо достаточно ответов, чтобы попробовать как начнёте писать код, так всё и сложится ... |
|||
:
Нравится:
Не нравится:
|
|||
05.10.2018, 09:18 |
|
Какой-то стандартный подход для возврата на клиент ошибок/сообщений об ошибках ?
|
|||
---|---|---|---|
#18+
Дмитрий Мухlove_bach, имхо достаточно ответов, чтобы попробовать как начнёте писать код, так всё и сложится да я уже давно попробовал. просто некоторые сомнения возникали ... |
|||
:
Нравится:
Не нравится:
|
|||
05.10.2018, 09:27 |
|
Какой-то стандартный подход для возврата на клиент ошибок/сообщений об ошибках ?
|
|||
---|---|---|---|
#18+
hVosttmonstrU Код: javascript 1.
бэд реквест относится только к ошибкам уровня протокола, но не данных смотрю, бардак в головах достигает эпических размеров. печаль, печаль, печаль.... Букварь почитай Exception Handling in ASP.NET Web API ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2018, 21:21 |
|
Какой-то стандартный подход для возврата на клиент ошибок/сообщений об ошибках ?
|
|||
---|---|---|---|
#18+
ПарамонБукварь почитай Exception Handling in ASP.NET Web API И в чём противоречие? Если ты принимаешь число, а тебе присылают строку -- это бед реквест. Или ты ожидаешь поле Name, а в запросе его нет, то это тоже бед реквест. Это нарушение контракта. А если тебе присылают правильно оформленное имя пользователя при регистрации, но оно уже зарезервировано, то это не бед реквест. Поэтому, читать буквари -- это гуд. Но пожалуйста, читайте НЕ ТОЛЬКО буквари, но и пользуйтесь той штукой, которая находится внутри головы. Очень советую. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2018, 22:02 |
|
Какой-то стандартный подход для возврата на клиент ошибок/сообщений об ошибках ?
|
|||
---|---|---|---|
#18+
hVosttПарамонБукварь почитай Exception Handling in ASP.NET Web API И в чём противоречие? Если ты принимаешь число, а тебе присылают строку -- это бед реквест. Или ты ожидаешь поле Name, а в запросе его нет, то это тоже бед реквест. Это нарушение контракта. А если тебе присылают правильно оформленное имя пользователя при регистрации, но оно уже зарезервировано, то это не бед реквест. Поэтому, читать буквари -- это гуд. Но пожалуйста, читайте НЕ ТОЛЬКО буквари, но и пользуйтесь той штукой, которая находится внутри головы. Очень советую. Что то не заметно, что ты эту штуку используешь в последнее время. То что сущность не найдена в базе, это ошибка протокола или адрес плохой ага? А статус 404 в букваре не смущает? А то, что для JSON все строки, а не числа и только приложение решает ошибка это или нет, удивительно да? )) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2018, 00:39 |
|
Какой-то стандартный подход для возврата на клиент ошибок/сообщений об ошибках ?
|
|||
---|---|---|---|
#18+
hVosttА если тебе присылают правильно оформленное имя пользователя при регистрации, но оно уже зарезервировано, то это не бед реквест. Кроме бед реквест есть ещё статусы, 409 как вариант. Ты почитай на досуге. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2018, 00:54 |
|
Какой-то стандартный подход для возврата на клиент ошибок/сообщений об ошибках ?
|
|||
---|---|---|---|
#18+
Парамон, Опять не вижу противоречий. 409 напрямую связан с ресурсом, на который указывает URL если твой PUT будет возвращать 409 в ответ на конфликт, связанный с каким-нибудь ID, указанным внутри JSON, ты очевидно делаешь фигню. 404 не смущает, так как это связано с URL, это также отвечает критериям безопасности. ситуаций самых разных в ПО может быть тысячи, а кодов HTTP ошибок у тебя десяток. вот это тебя не смущает? приложение решает ошибка это или нет, но уровень принятия решения -- это большая разница. давай ещё бизнес-модуль будет думать о том, с каким кодом вернуть ответ клиенту, не? говнокодить так говнокодить, не нужно стесняться. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2018, 01:16 |
|
Какой-то стандартный подход для возврата на клиент ошибок/сообщений об ошибках ?
|
|||
---|---|---|---|
#18+
hVosttесли твой PUT будет возвращать 409 в ответ на конфликт, связанный с каким-нибудь ID, указанным внутри JSON, ты очевидно делаешь фигню Ты будешь возвращать 200? На счёт тысяч ошибок. Главное дать клиенту понять, запрос success или fail, на это статусов хватает. Как твоём случае клиент об этом узнает, чтобы стандартно? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2018, 08:35 |
|
Какой-то стандартный подход для возврата на клиент ошибок/сообщений об ошибках ?
|
|||
---|---|---|---|
#18+
ПарамонТы будешь возвращать 200? Если это ошибка логики, ошибка ввода пользователем (валидация), естественно это будет 200. С точки зрения выполнения, это не ошибки, а предсказуемое поведение, нормальная ситуация. ПарамонНа счёт тысяч ошибок. Главное дать клиенту понять, запрос success или fail, на это статусов хватает. Как твоём случае клиент об этом узнает, чтобы стандартно? Для чего по-твоему, нужны вообще статусы ошибок HTTP? Почему бы вообще всегда не отдавать 200, а в теле ответа +100500 кодов и полная информация? Подумай. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2018, 09:27 |
|
Какой-то стандартный подход для возврата на клиент ошибок/сообщений об ошибках ?
|
|||
---|---|---|---|
#18+
hVosttПарамонТы будешь возвращать 200? Если это ошибка логики, ошибка ввода пользователем (валидация), естественно это будет 200. С точки зрения выполнения, это не ошибки, а предсказуемое поведение, нормальная ситуация. ПарамонНа счёт тысяч ошибок. Главное дать клиенту понять, запрос success или fail, на это статусов хватает. Как твоём случае клиент об этом узнает, чтобы стандартно? Для чего по-твоему, нужны вообще статусы ошибок HTTP? Почему бы вообще всегда не отдавать 200, а в теле ответа +100500 кодов и полная информация? Подумай. я вот продолжу обсуждение. если на ошибку логики ты предлагаешь возвращать 200, и на успешный ответ тоже 200, то тогда будет именно тот случай, когда в теле ответа будет +100500 кодов и полная информация об ответе и о бизнес ошибке. кстати, было бы проще, если бы на вопрос ты просто давал ответ а не писал новый вопрос, так как непонятно, ты используешь подход - 200 возвращать в случае успешных операций и ошибок логики ? я некоторое время назад сделал подключение к билетному шлюзу Единое поле . даю ссылку на метод создания заказа. там как видишь подход реализовали 1. успешный ответ - 200 2. успешный ответ + ошибка бизнес логики - ответ 4хх это было весьма удобно, так как в случае успешного создания заказа в билетной системе ты работаешь с Json, который содержит созданный заказ, а в случае невозможности создания заказа ты работаешь с описанием ошибки. вот реальный пример успешного запроса сеансов для контрагента с http ответом 200 Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
и вот реальный пример успешного запроса сеансов для несуществующего контрагента с кодом 404 Код: javascript 1. 2. 3. 4. 5. 6.
то есть как бы прозрачная логика - у тебя есть ответ 200 => ты работаешь со списком сеансов. у тебя ответа не 200, а 4xx => ты работаешь с описанием ошибки. так лучше. критерий "лучше" тут имеет конкретную характеристику - лучше потому что проще. я подключал и другой шлюз, в котором успешный ответ и ошибку бизнес-логики возвращали под 200, а для ошибок бизнес логики был отдельный флаг - эта реализация был сложнее и заняла больше времени. по моему все споры идут из-за того, что в кодах 2xx или 4xx в Http протоколе нет специально выделенного значения для ошибок бизнес логики. как-то надо обрабатывать ситуацию, когда успешный ответ в принципе есть, но как то надо оповестить о том, что пытаются использовать несуществующего контрагента. поскольку с обработкой ответов - тут все-таки соглашение, просто надо выбрать подходящий для вашей системы подход. ну вообще обсуждаем 2 подхода 1. для успешных операций и ошибок логики возвращать 200. в этом случае в ответе нужно заводит поле, в котором может быть записана возможная ошибка логики 2. для успешных операций нужно возвращать 200, для ошибок логики возвращать один код 4xx. в этом случае в случае успешной операции возвращать данные с ответом, в случае ошибки логики возвращать код ошибки и возможное описание ошибки ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2018, 10:28 |
|
Какой-то стандартный подход для возврата на клиент ошибок/сообщений об ошибках ?
|
|||
---|---|---|---|
#18+
hVostt, Ответ вопросом на вопрос ещё терпимо, но мой вопрос уже содержит ответ, так что это либо очень густой сумрак, либо не желание видеть очевидное. Да, и почему только 200? 201 на удачный инсерт тоже не используем? )) В случае статусов, клиенту все очевидно, без детсадовских кастомных полей придуманных программистом Васей. Весь мир так работает, хочешь оставаться Дартаньяном, пожалуйста ) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2018, 11:26 |
|
Какой-то стандартный подход для возврата на клиент ошибок/сообщений об ошибках ?
|
|||
---|---|---|---|
#18+
hVosttА если тебе присылают правильно оформленное имя пользователя при регистрации, но оно уже зарезервировано, то это не бед реквест. еще какой бед так как противоречит твоей бизнес логики. если мы говорим ресте то еще как. в рамках обычного поста на форму конечно будет обработка без 400, а просто вывод ошибки куда клиенту. hVosttЕсли это ошибка логики, ошибка ввода пользователем (валидация), естественно это будет 200. С точки зрения выполнения, это не ошибки, а предсказуемое поведение, нормальная ситуация. если данные нарушают какое-то бизнес-правило, то 40x. потому что это ошибка и не важно ты её ожидал или нет. механизм прокидывания ошибок из кишков бизнес слоя через генерацию ошибок вроде обычный(а там уже Ui как надо выведет если надо вообще) так почему я не могу использовать статусы ошибок http чтоб говорить http клиентам сходу что у меня ошибка и все http клиенты умеют обработать такую ситуацию без дополнительного кода. я видел апи того же яндекса и других контор что на ошибку отвечают 200 и меняли дто в ответе либ делали "суперобъект" с заранее заложенными свойствами полями ошибки, вот только зачем. В чем минус ответа со статусом? чему это противоречит? то что на коды ошибок http вещают свои ошибки? ну и ладно. но почему бы не использовать то что есть. я не вижу где ты нашел кашу в голове, по мне люди идут по пути простоты, а не придумывания велосипедов. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2018, 11:37 |
|
Какой-то стандартный подход для возврата на клиент ошибок/сообщений об ошибках ?
|
|||
---|---|---|---|
#18+
handmadeFromRu я видел апи того же яндекса и других контор что на ошибку отвечают 200 и меняли дто в ответе либ делали "суперобъект" с заранее заложенными свойствами полями ошибки, вот только зачем. И действительно, почти все серьезные конторы так делают. Дураки, наверное. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2018, 13:35 |
|
Какой-то стандартный подход для возврата на клиент ошибок/сообщений об ошибках ?
|
|||
---|---|---|---|
#18+
ПарамонhVostt, В случае статусов, клиенту все очевидно, без детсадовских кастомных полей придуманных программистом Васей. Весь мир так работает, хочешь оставаться Дартаньяном, пожалуйста ) А можно про весь мир поподробнее? Пару примеров. Да хотя бы один? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2018, 13:38 |
|
Какой-то стандартный подход для возврата на клиент ошибок/сообщений об ошибках ?
|
|||
---|---|---|---|
#18+
AddxПарамонhVostt, В случае статусов, клиенту все очевидно, без детсадовских кастомных полей придуманных программистом Васей. Весь мир так работает, хочешь оставаться Дартаньяном, пожалуйста ) А можно про весь мир поподробнее? Пару примеров. Да хотя бы один? я привел пример крупной билетной площадки Единое поле , которая так работает ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2018, 13:55 |
|
Какой-то стандартный подход для возврата на клиент ошибок/сообщений об ошибках ?
|
|||
---|---|---|---|
#18+
ПарамонОтвет вопросом на вопрос ещё терпимо, но мой вопрос уже содержит ответ, так что это либо очень густой сумрак, либо не желание видеть очевидное. У тебя вопрос глупый и расчитан на дурака. Как договорятся клиент с сервером (точнее их разработчики), так и будет "узнавать". А на мой вопрос ты отвечать не стал, так как ответ тебе явно не нравится. ПарамонДа, и почему только 200? 201 на удачный инсерт тоже не используем? )) Пошли какие-то странные придирки. 201 используем, но сути это не меняет. ПарамонВ случае статусов, клиенту все очевидно, без детсадовских кастомных полей придуманных программистом Васей. Я тебе ещё раз задам свой вопрос. Ситуаций в ПО тысячи. Кодов HTTP у тебя десяток. Что там тебе вдруг внезапно стало "очевидно", можешь поведать деревенщинам? ПарамонВесь мир так работает, хочешь оставаться Дартаньяном, пожалуйста ) Резюме похоже на слив. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2018, 14:04 |
|
Какой-то стандартный подход для возврата на клиент ошибок/сообщений об ошибках ?
|
|||
---|---|---|---|
#18+
monstrU я привел пример крупной билетной площадки Единое поле , которая так работает Да, но метод работает совсем не так, как Вы пишете. monstrU2. успешный ответ + ошибка бизнес логики - ответ 4хх Тут и близко такого нет. Это совсем не про бизнес логику. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2018, 14:04 |
|
Какой-то стандартный подход для возврата на клиент ошибок/сообщений об ошибках ?
|
|||
---|---|---|---|
#18+
handmadeFromRuеще какой бед так как противоречит твоей бизнес логики. С фига ли? Ошибки в мониторе это проблема, которая фиксируется, исследуется и при необходимости устраняется. А когда пользователи ошибаются с вводом, делают невалидные действия с точки зрения бизнеса, таких ситуаций тысячи и тысячи -- какие же это ошибки? Зачем мне это в статистике работы ПО? Я что админам должне объяснять все 100500 ситуаций? Вы ребята вообще чем занимались, с каких деревьев слезли )) Ну и мрак.... handmadeFromRuесли данные нарушают какое-то бизнес-правило, то 40x. Это твои фантазии. Но и не только твои, но и многих. И это довольно распространённая проблема. handmadeFromRuмеханизм прокидывания ошибок из кишков бизнес слоя через генерацию ошибок вроде обычный И как твой бизнесовый "механизм" должен в зависимости от ситуации назначить "правильный" код? )) handmadeFromRuВ чем минус ответа со статусом? чему это противоречит? то что на коды ошибок http вещают свои ошибки? ну и ладно. но почему бы не использовать то что есть. я не вижу где ты нашел кашу в голове, по мне люди идут по пути простоты, а не придумывания велосипедов. Как раз таки написанное тобой это именно что велосипеды, натуральным образом. Да ещё и с квадратными колёсами. А насчёт "просто", так всегда, у каждого человека свой бред это всегда "просто". Но ни под какие обоснования не ложится. Просто "так захотелось". https://developer.mozilla.org/ru/docs/Web/HTTP/Status/400 где тут про бизнес логику? RFC почитайте. я уже не прошу головой думать. видимо, это сложно. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2018, 14:12 |
|
Какой-то стандартный подход для возврата на клиент ошибок/сообщений об ошибках ?
|
|||
---|---|---|---|
#18+
hVostt Как раз таки написанное тобой это именно что велосипеды, натуральным образом. Да ещё и с квадратными колёсами. А насчёт "просто", так всегда, у каждого человека свой бред это всегда "просто". Но ни под какие обоснования не ложится. Просто "так захотелось". https://developer.mozilla.org/ru/docs/Web/HTTP/Status/400 где тут про бизнес логику? RFC почитайте. я уже не прошу головой думать. видимо, это сложно. Ну как же - там основной вклад AlexeyVasiliev -> Vasiliev -> Vasya -> Вася ))) Да и код 4xxx - видимо не 400, а 418. ))) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2018, 14:21 |
|
|
start [/forum/topic.php?fid=18&msg=39714316&tid=1355117]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
49ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
62ms |
get tp. blocked users: |
1ms |
others: | 262ms |
total: | 419ms |
0 / 0 |