170 похожих чатов

Я считаю, что на запрос /api/v1/users?id=42 Нужно ответить, например: • 200 {ok:true, data:

{user:{…}}} когда такой юзер есть;
• 200 {error:true, code:'user_not_found'} когда юзера нету;
• 200 {error:true, code:'wrong_auth_cookie'} когда не была выполнена авторизация;
• 404 {error:true, code:'fatal_error', message:'Path /api/v1/users does not exists'} когда версия v1 уже не поддерживается или при любой другой опечатке в запросе (если он всё ещё в пределах /api/*);
• 400 {error:true, code:'fatal_error', message:'Parameter "user_id" is missing'} когда в запрос поданы некорректные параметры (но не их значения!).

То есть, на мой взгяд, код «200» обозначает, что запрос верный и API отработало верно (то есть сам СЕРВИС обслужил запрос), а коды 4xx обозначали бы только то, что API используется неправильно.
Туда же можно воткнуть проверки Content-Type и самого метод (get/post), может юзерагент чекнуть, чтобы поисковики случайно не заходили (им можно отдавать 403 например).

Такая ошибка на фронте обозначала бы ошибку в КОДЕ приложения, или факт того, что приложение нужно обновить/исправить (или сервис сейчас не работает – пусть возвращает 503 если у него база данных отвалилась, например).

Это идеально отделяет их от «отрицательных ответов» – когда нет объекта, нет прав на изменение, попытка сохранить некорректные данные – всё это _нормальные_ запросы к API, которые нормально отработали и вернули нормальный, просто отрицательный результат. Я наоборот не понимаю, с чего это они должны возвращать 404…

6 ответов

24 просмотра

Можно определять результат выполнения запроса разбирая только заголовки

Ну понимаешь, тебе сейчас скажут, что при получении 404 надо потом еще проверить тело ответа, в котором и детализировать, а где именно ошибка - т.е. по сути одна хрень, нужно парсить и читать тело ответа ;)

После такого беседовать не о чем более, удачи.

я как фронтенд разработчик, ноги бы таким проектировщикам апи поломал

тут смотря как посмотреть,и завист от требований клиента. например у меня был кейс когда какой-то промежутчный узел в сети отдавал 404 и запрос до апи даже не доходил. в такий кейсай даже на обишбку лушче вернуть 200

Но ведь при твоём 400 апи все равно верно отрабатывает.

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта