LINUX.ORG.RU

Возврат 4хх при нормальном запросе и ответе

 


0

1

Заметил есть куча серверов которые при правильном запросе и правильном ответе возвращают ошибки 4хх. Т.е. например я спрашиваю зарегистрирован ли на сервере Вася Иванов, а он мне в ответ Response 400: Нет такого пользователя.

Это нормально?

Очевидно что нет, так как 400 это признак неверно сформированного запроса.

urxvt ★★★★★
()

Зависит от архитектора. Вцелом, ничего особенного. 200 - на успех, 400 при ошибках такого плана вполне нормально. Это ж всего лишь число в виде текста в HTTP ответе. Зависит от того как будет клиент интерпретировать, нужен ли ему статус, отличный от 200, лично я стараюсь использовать разные статусы, как и многие проекты, в которых я участвовал, но бывали и проекты, где бекенд возвращал ошибку в JSON, при статусе 200.

menangen ★★★★★
()

Это типа REST. По-мне идиотизм. Но людям нравится.

anonymous
()
Ответ на: комментарий от menangen

ошибку в JSON, при статусе 200.

Так делают идиоты, которые придумали и следуют REST. То, что транспортный слой тоже обрабатывает HTTP ошибки эти кретины не подумали. Поэтому у них «всё есть 200».

PPP328 ★★★★★
()

например я спрашиваю зарегистрирован ли на сервере Вася Иванов

Как выглядит запрос? Для http://foo.org/user/VasyaIvanov 404 ответ при отсутствии пользователя абсолютно нормален. Для http://foo.org/api/v1/is-there-user/VasyaIvanov правильно будет скорее 200 и отрицательный ответ в данных.

slovazap ★★★★★
()
Ответ на: комментарий от PPP328

Так делают идиоты, которые придумали и следуют REST

Вот только это уже не REST, а JSON API.

WitcherGeralt ★★
()
Ответ на: комментарий от PPP328

транспортный слой тоже обрабатывает HTTP ошибки

Никому это не интересно.

anonymous
()
Ответ на: комментарий от steemandlinux

ну в ответе bad request на такое некоторая логика присутствует. имно несколько странная, но понятная. в rest нет общих рецептов все изгаляются как хотят.

vtVitus ★★★★★
()

400 ответ отдает, например, при ошибках валидации JSON-запроса. Это есть в стандарте (RFC нагугли самый последний).

tz4678 ★★
()

4xx - это ошибка клиента, т.е. с точки зрения сервера, такой запрос отсылать не стоило.

я спрашиваю зарегистрирован ли на сервере Вася Иванов

Response 400: Нет такого пользователя.

если это поиск, то 200 с пустой коллекцией, imho, было бы лучше

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.