Size: a a a

Node.js — русскоговорящее сообщество

2020 February 27

AA

Anonymous Anonymous in Node.js — русскоговорящее сообщество
Please help me with the answer please
источник

ИК

Игорь Корнелли in Node.js — русскоговорящее сообщество
Grigorii K. Shartsev
Сначала надо строго формалировать понятие идиота, чтобы такое пруфить ¯\_(ツ)_/¯
наверняка у них есть причина, хотя сложно представить что-то кроме - "На фронтах у нас browser и fetch и мы не умеем нормально обработать ошибки" =)
источник

DD

Dmitry DS in Node.js — русскоговорящее сообщество
Игорь Корнелли
идиоты отдают )
Ага, я начитался, rest api, коды http и т.п. первая версия такая была.

А теперь ушел от этого.
Транспортным уровнем рулит инфраструктура. Если давать код статуса 404 на отсутствующий объект, то это фигня полная, тот же nginx может повторить запрос на другой сервер. Но другого ответа он не получит!
источник

DD

Dmitry DS in Node.js — русскоговорящее сообщество
Вот и кто тут идиот?
источник

GS

Grigorii K. Shartsev in Node.js — русскоговорящее сообщество
Anonymous Anonymous
Please help me with the answer please
Next time after question like this you will be banned permanently
источник

ИК

Игорь Корнелли in Node.js — русскоговорящее сообщество
Dmitry DS
Вот и кто тут идиот?
ни слова не понял
источник

DD

Dmitry DS in Node.js — русскоговорящее сообщество
Api должно давать код статуса отличный от 200, только когда проблема с сервером. В остальных случаях софт сам все разрулит по кодам в сообщении
источник

ИК

Игорь Корнелли in Node.js — русскоговорящее сообщество
Dmitry DS
Ага, я начитался, rest api, коды http и т.п. первая версия такая была.

А теперь ушел от этого.
Транспортным уровнем рулит инфраструктура. Если давать код статуса 404 на отсутствующий объект, то это фигня полная, тот же nginx может повторить запрос на другой сервер. Но другого ответа он не получит!
то есть я в каждой реализации клиента(любого) должен писать поверх стандартного обработчика ошибок еще свой? отличный план, надежный как швейцарские часы.
источник

ИК

Игорь Корнелли in Node.js — русскоговорящее сообщество
Dmitry DS
Api должно давать код статуса отличный от 200, только когда проблема с сервером. В остальных случаях софт сам все разрулит по кодам в сообщении
ересь
источник

GS

Grigorii K. Shartsev in Node.js — русскоговорящее сообщество
Игорь Корнелли
наверняка у них есть причина, хотя сложно представить что-то кроме - "На фронтах у нас browser и fetch и мы не умеем нормально обработать ошибки" =)
1. Разделение исключений и ошибок.
То, что бек сформировал, что обращаешься к сущности, которой нет (/users/100500), это ошибка, но запрос выполнен успешно = 200.
То, что обратились к /abacaba/blabla, а такого роута вообще нет - это уже ошибка не найденого ресурса 404.

2. Для многих вещей типа ошибки валидации вообще нет статуса. Некоторые использут 422, другие ничего не значащий 400
источник

DD

Dmitry DS in Node.js — русскоговорящее сообщество
Grigorii K. Shartsev
1. Разделение исключений и ошибок.
То, что бек сформировал, что обращаешься к сущности, которой нет (/users/100500), это ошибка, но запрос выполнен успешно = 200.
То, что обратились к /abacaba/blabla, а такого роута вообще нет - это уже ошибка не найденого ресурса 404.

2. Для многих вещей типа ошибки валидации вообще нет статуса. Некоторые использут 422, другие ничего не значащий 400
+
источник

ИК

Игорь Корнелли in Node.js — русскоговорящее сообщество
даже спорить не буду) для тех, что так делает есть свой статус ) - 418
источник

GS

Grigorii K. Shartsev in Node.js — русскоговорящее сообщество
Игорь Корнелли
даже спорить не буду) для тех, что так делает есть свой статус ) - 418
Могу лишь предложить покопать вопрос глубже ¯\_(ツ)_/¯

Сам ни за что не агитирую, я возвращаю http статусы, просто потому что мне так удобнее
источник

GS

Grigorii K. Shartsev in Node.js — русскоговорящее сообщество
Но не надо бросаться "идиотами" во все стороны, не углубляясь в вопрос)
источник

ИК

Игорь Корнелли in Node.js — русскоговорящее сообщество
Grigorii K. Shartsev
1. Разделение исключений и ошибок.
То, что бек сформировал, что обращаешься к сущности, которой нет (/users/100500), это ошибка, но запрос выполнен успешно = 200.
То, что обратились к /abacaba/blabla, а такого роута вообще нет - это уже ошибка не найденого ресурса 404.

2. Для многих вещей типа ошибки валидации вообще нет статуса. Некоторые использут 422, другие ничего не значащий 400
ну скажем, раньше, когда на JS делали снежинки, не было в принципе понятия - нормально отловить ошибку, потому что чаще всего ИЕ5-6 до них просто не доходил) поэтому было принято отдавать 200 и там писать ок реквест или не ок, но мы в 2020 живем, и теперь это можно делать, если вы мне будуте доказывать, что это не обязательно - то вы не правы по стандарту.
источник

ИК

Игорь Корнелли in Node.js — русскоговорящее сообщество
Grigorii K. Shartsev
Но не надо бросаться "идиотами" во все стороны, не углубляясь в вопрос)
имею мнение )
источник

GS

Grigorii K. Shartsev in Node.js — русскоговорящее сообщество
Игорь Корнелли
ну скажем, раньше, когда на JS делали снежинки, не было в принципе понятия - нормально отловить ошибку, потому что чаще всего ИЕ5-6 до них просто не доходил) поэтому было принято отдавать 200 и там писать ок реквест или не ок, но мы в 2020 живем, и теперь это можно делать, если вы мне будуте доказывать, что это не обязательно - то вы не правы по стандарту.
А про клиент вообще никто ничего не говорил
источник

ИК

Игорь Корнелли in Node.js — русскоговорящее сообщество
Grigorii K. Shartsev
А про клиент вообще никто ничего не говорил
а для кого статусы?
источник

PS

Pavel Shakhov (pongo) in Node.js — русскоговорящее сообщество
Grigorii K. Shartsev
1. Разделение исключений и ошибок.
То, что бек сформировал, что обращаешься к сущности, которой нет (/users/100500), это ошибка, но запрос выполнен успешно = 200.
То, что обратились к /abacaba/blabla, а такого роута вообще нет - это уже ошибка не найденого ресурса 404.

2. Для многих вещей типа ошибки валидации вообще нет статуса. Некоторые использут 422, другие ничего не значащий 400
+
источник

GS

Grigorii K. Shartsev in Node.js — русскоговорящее сообщество
Игорь Корнелли
а для кого статусы?
Клиент не всегда браузер. Я про то, что в обоснованиях не было ничего типа "так лучше для обработки на клиенте".
Перечитай мой и Дмитрия сообщения)
источник