Size: a a a

var chat = new Chat();

2020 December 05

OZ

Oleksii Zaichenko in var chat = new Chat();
VD
Ничего плохого в 200 с ошибкой нет
Если речь идёт об ошибках уровня БЛ
Ты говоришь о любом http api, или о rest? Если это любое api, то единственное пожелание - согласованность и документированость. В статье автор говорил о rest. И результат его трудов никак не restful api. И манипуляция одним кодом ответа - это только одна из причин, которая мне уж больно резанула по глазам.
источник

OZ

Oleksii Zaichenko in var chat = new Chat();
И, ещё раз повторюсь, если ты выставляешь статус код отличный от 200 в ответе в случае какой либо ошибки, для того, чтобы потребитель понял все ли хорошо, ему будет достаточно только проверить http status без чтения тела ответа
источник

Dm

Dungeon master in var chat = new Chat();
Oleksii Zaichenko
И, ещё раз повторюсь, если ты выставляешь статус код отличный от 200 в ответе в случае какой либо ошибки, для того, чтобы потребитель понял все ли хорошо, ему будет достаточно только проверить http status без чтения тела ответа
В любом случае ошибки нужно обрабатывать где бы они не были
источник

Dm

Dungeon master in var chat = new Chat();
а не просто if (200) {} else {}
источник

Dm

Dungeon master in var chat = new Chat();
А так да
источник

Dm

Dungeon master in var chat = new Chat();
рест и рестфул посос
источник

OZ

Oleksii Zaichenko in var chat = new Chat();
Да блин, где я написал,  что ошибки НЕ надо обрабатывать?
источник

OZ

Oleksii Zaichenko in var chat = new Chat();
В некоторых случаях полезная для клиента информация в теле ответа будет только в случае ошибки. В таком случае,  если все ок, то тело можно даже не читать
источник

OZ

Oleksii Zaichenko in var chat = new Chat();
Потому что оно будет пустым
источник

E

Etki in var chat = new Chat();
Поддерживаю обоих, слать код в теле ответа говно, слать код хттп-статусом тоже говно, потому что более уебанского протокола не существует (в качестве разминки для мозгов можете попробовать посчитать какое количество из 4хх реально являются ошибками).

Лично я за то чтобы использовать хттп максимум как транспорт, хоть он и выше уровнем.
источник

VL

Vova Lantsov in var chat = new Chat();
Etki
Поддерживаю обоих, слать код в теле ответа говно, слать код хттп-статусом тоже говно, потому что более уебанского протокола не существует (в качестве разминки для мозгов можете попробовать посчитать какое количество из 4хх реально являются ошибками).

Лично я за то чтобы использовать хттп максимум как транспорт, хоть он и выше уровнем.
418 самая важная ошибка
источник

VL

Vova Lantsov in var chat = new Chat();
источник

OZ

Oleksii Zaichenko in var chat = new Chat();
Etki
Поддерживаю обоих, слать код в теле ответа говно, слать код хттп-статусом тоже говно, потому что более уебанского протокола не существует (в качестве разминки для мозгов можете попробовать посчитать какое количество из 4хх реально являются ошибками).

Лично я за то чтобы использовать хттп максимум как транспорт, хоть он и выше уровнем.
Меня видимо ни один из оппонентов этого спора не понял... Я не говорю, что код ошибки нужно слать только как http статус. Имхо, исход каждой операции представленной http api можно классифицировать как успех (код 2хх), ошибка валидации (422 unprocessable entity), нарушение инварианта какого то объекта или агрегата (те самые ошибки БЛ, 409 conflict), либо же необработанные исключения (500). Этот список не включает коды типа 415, или 400, которые соответствуют неподдерживаевому формату сообщения в запросе. Я не настаиваю на том, что эти категории ошибок должны иметь разные статус коды, можно обойтись одним, отличным от 2хх.
Теперь, каждый неуспешный исход операции по-хорошему включает тело содержащее минимум 2 поля: код ошибки и текст ошибки. При этом, например ошибки валидации могут иметь дополнительные поля, типа массива полей или коллекций полей, значения которых не валидны.
источник

OZ

Oleksii Zaichenko in var chat = new Chat();
Я лично предпочитаю создавать http сервисы по описанному выше принципу. Если же мы говорим не об http api, а о том, который использует http в качестве транспорта (graphql, или какой либо rpc, либо soap over http), то тут вообще похер не только на статус коды, но и на глаголы (можно все POSTом слать), единственное, что этому api неплохо бы быть согласованным и документированным.
источник

Ts

Turok sUkA in var chat = new Chat();
Привет, народ

нужно использовать https при разработке(фейсбук принимает запросы на логин только с https)
но при запуске получаю вот это

полдня играюсь с openssl - даже после полной настройки переменных от просто ничего не делает, генерация просто молча заканчивается, не выдавая никуда никаких файлов


может, есть способ убедить браузер принять сайт без сертификата?

З.Ы. работаю на винде, по сему все нормальные способы для меня закрыты
источник

AO

Andrey Onatsky in var chat = new Chat();
Turok sUkA
Привет, народ

нужно использовать https при разработке(фейсбук принимает запросы на логин только с https)
но при запуске получаю вот это

полдня играюсь с openssl - даже после полной настройки переменных от просто ничего не делает, генерация просто молча заканчивается, не выдавая никуда никаких файлов


может, есть способ убедить браузер принять сайт без сертификата?

З.Ы. работаю на винде, по сему все нормальные способы для меня закрыты
На винде есть линукс подсистема, я сертификаты там делал
источник

Ts

Turok sUkA in var chat = new Chat();
Andrey Onatsky
На винде есть линукс подсистема, я сертификаты там делал
а как их потом применить?
источник

Ts

Turok sUkA in var chat = new Chat();
господи
уже и wsl не ставиться
источник

V

VD in var chat = new Chat();
Oleksii Zaichenko
Ты говоришь о любом http api, или о rest? Если это любое api, то единственное пожелание - согласованность и документированость. В статье автор говорил о rest. И результат его трудов никак не restful api. И манипуляция одним кодом ответа - это только одна из причин, которая мне уж больно резанула по глазам.
Чистого реста там конечно нет
Но, внезапно, его нигде нет
В продакшене я ни разу не видел не кривую псевдо RPC over JSON, а именно рест
источник

V

VD in var chat = new Chat();
Oleksii Zaichenko
И, ещё раз повторюсь, если ты выставляешь статус код отличный от 200 в ответе в случае какой либо ошибки, для того, чтобы потребитель понял все ли хорошо, ему будет достаточно только проверить http status без чтения тела ответа
Это делается для того чтобы разделять ошибки инфраструктуры или транспорта от ошибок бизнес логики
источник