Ребят, я час назад сидел с такими же ответами как

вы мне щас кидаете 🙂 Вот честно. Но потом я подумал… а на сколько я мыслю здраво, а не стереотипами.

1. Зачем HTTP коды вообще?
Они должны помогать клиенту понимать что вернул сервер. Это понятно.

2. Зачем клиент ходит на наши апи?
Для получения целевых ресурсов (объектов). Это может быть: продукт, комментарий, юзер и прочее.

3. Является ли пустая коллекция ресурсом для клиента?
Нет. Ему от нее ни холодно ни жарко. Все равно, когда API клиент узнает что в коллекции пусто, ему придется городить человекопонятное сообщение живому клиенту сидящему перед экраном ПК.

4. Код 404 при пустой коллеции поможет быстрее понять API клиенту что дело дрянь?
Определенно. Чем быстрее API клиент поймет, что в теле ответа от сервера нет желаемого тем лучше. Например можно не парсить json и не смотреть в тело ответа вовсе если там ничего для нас интересного нет. Это экономит серверные ресурсы и ускоряет обработку ответов. Каждый клиент сам для себя решит.

Но на всякий случай решил уточнить у других где я провтыкал с выводами.

И опять же, ничего не мешает вообще не использовать коды ответов и строить логику обработки сугубо на содержимом теле ответа. Это уже каждый разработчик для себя решает 🙂

Всем пасибо за участие.

4 ответов

3 просмотра

1. Если мы говорим конкретно о 4хх ошибках, а именно client errors, читай https://tools.ietf.org/html/rfc7231#section-6.5 2,3 Чем клиент-браузер отличается от клиента-андроид приложения? Ничем, они все ходят для того, чтобы получить данные. Если к примеру, у тебя есть страничка со всеми комментариями о продукте а-ля яндекс маркет, то тогда клиент-браузер должен показывать 404 ошибку, если следовать твой логике 4. Да, поможет если их использовать по стандарту а не лепить что попало. Опять же, читай https://tools.ietf.org/html/rfc7231#section-6.5

Можно последний вопрос. Когда ты на сайте делаешь поиск по словам и сервер ничего не находит ты ожидаешь увидеть страницу 404 или 200 с текстом "извините, ничего не найдено"?

далее все мое оценочное суждение: п3 - пустая коллекция это валидный ответ. является ресурсом. то что клиент получит пустой набор данных вполне себе нормальное явление, как он этот случай обработает - его проблемы, а не сервера. п4 - 404 нужен для отсутствующих ресурсов. пустая коллекция - не есть отсутствующий ресурс. ресурс присутствует но пока в нем нет элементов (а вот ответ в виде "[]" - есть, а это даже не 204) обратился ты в /post/1/comments - даже если комментов нет - это 200 и "[]". обратился в /post/100500/comments - нет поста 100500, тут тебе 404. кто то скажет "а что такое 204 тогда" - это в прямом смысле и есть "сервер вернул пустой body", хотя заголовки есть, и ресурс есть, просто кто то решил что не стоит вообще ничего возвращать.

1. в продолжение твоей мысли - главное не завязывать на них логику приложения. 2xx, 4xx, 5xx, а дальше свои коды внутрь пхай. 2. не только получения, он еще и поменять чего может. Короч RPC. 3. является. 4. нет.

Похожие вопросы

Обсуждают сегодня

Добрый день, не подскажите, если в OC-V3 поменять страндартную директорию /storage/ на /storage2/ - не будет сильно много проблем ?
Max Dubovsky
32
'frakturBold' => ['𝖆', '𝖇', '𝖈', '𝖉', '𝖊', '𝖋', '𝖌', '𝖍', '𝖎', '𝖏', '𝖐', '𝖑', '𝖒', '𝖓', '𝖔', '𝖕', '𝖖', '𝖗', '𝖘', '𝖙', '𝖚', '𝖛', '𝖜', '𝖝', '𝖞', '𝖟', '𝕬', '𝕭', '𝕮', '𝕯'...
Roma
4
Каким то образом можно определить ширину экрана пользователя перед загрузкой partial-а? Надо рассчитать ширину кадров слайдера для ресайза картинок для container-fluid.
Point 111
22
А сколько часов мак держит зарядку в рабочем режиме? Например мой Redmi Mac (просто наклейка от айфона осталась, налепил) по началу держал часов 5 с парой открытых штормов и ...
Ross
8
Ребят, было ли у вас так, что переменные в WebApp —tg-viewport-height, —tg-viewport-stable-height после метода expand не обновляются, а остаются в размерах, как было до expand...
Black
3
Ребят, а вот такой вопрос: если я владелец бота анонимного чата, в котором, например, имеются подписки, используя какую-нибудь ЮКассу (или тому подобное, в общем с налогами, в...
Eugene Неелов
8
Гнева и тупости пост. Как блять можно работать с маркетологами? Их в детстве всех родители случайно цепляли об дверные откосы? Поступила таска, на сайте "лишний счетчик Google...
Igor
4
Вообще сейчас эти все провайдеры облаков оборзели. Если тебе нужно 4 ядра и 4 гб., хер где такую конфигурацию найдешь. Суют тебе сразу либо 8гб. либоа сразу 16 гб., они мне на...
Igor
4
а у тг (бот) апи вообще есть статусная страница, кстати?
e\\/gen
5
Короче получается только кнопки не поменять А кнопки вроде тоже слетают при редактировании не?
inc.
10
Карта сайта