Mike
Он спросил Я ответил
он спросил конкретного человека в рамках конкретного треда, а ты проигнорировал контекст и дал бессмысленный ответ
.
Для чего тогда по вашему предназначен 422 код, например?
Не имею ни малейшего понятия, но мешать уровни не буду ни в коем случае. Если ответы формата "ой веб-сервер упал" и "ой ты всё правильно сделал, но в другом месте не доделал" находятся на одном уровне - я это не поддерживаю и использовать не буду.
pavelkostyukov
эт а разве 5xx - не проблемы в основном на стороне сервака?
pavelkostyukov
а 4xx клиента?
Mike
Раз на то пошло, то группа про андроид, а тут http коды мусолят
и основы программирования, и ырыкс, и джейсон — чего тут только ни мусолят
.
Первое 5ХХ коды. Второе - 4ХХ
и чо? ответ-то на одном уровне приходит.
.
То есть по вашему лучше отвечать 200 на такие вещи, как заваленные валидации? Может ещё 200 вместо 404 отдавать?
э нет, 404 - это не апи. это ты лезешь туда где нет ничего. это уровень сервиса, не апи.
Mike
э нет, 404 - это не апи. это ты лезешь туда где нет ничего. это уровень сервиса, не апи.
/user/1 — 200 /user/100500 — 404 абсолютно нормальная, правильная и естественная ситуация
Anonymous
и чо? ответ-то на одном уровне приходит.
Чувак, https://www.restapitutorial.com/httpstatuscodes.html загляни сюда, там все про все подробно.
pavelkostyukov
кстати раз такой разговор пошел в чем разница между - 200 -Ок и 204- Ок
.
Чувак, https://www.restapitutorial.com/httpstatuscodes.html загляни сюда, там все про все подробно.
я за 10 лет кодинга туда не глядел ни разу, спасибо большое!
Valentin
Чувак, https://www.restapitutorial.com/httpstatuscodes.html загляни сюда, там все про все подробно.
Человек в целом отрицает HTTP коды, как таковые, а ты ему ссылку на их категоризацию кидаешь)
.
то, что я не согласен - не значит, что я этого не знаю.
Anonymous
нет, не отрицаю.
А зачем ты сюда вообще что-то пишешь, доказываешь? Любишь строить велосипеды? Вперед!
Anonymous
Срач из нихуя просто 😂
Anonymous
Потому что могу :)
Тут неокрепшие умы в группе есть, потом будут такие же как ты и зачем оно?
Valentin
Срач из нихуя просто 😂
Не вижу срача - вполне себе адекватный спор
Valentin
Тут неокрепшие умы в группе есть, потом будут такие же как ты и зачем оно?
Человек доказывают свою позицию, с которой мы не согласились, что не так?
pavelkostyukov
частично похоже на срач - по факту мало - ответы даны и идет размусоливание
Anonymous
Шагайте в чаты где обсуждение апи это норма, в чем проблема?
.
Шагайте в чаты где обсуждение апи это норма, в чем проблема?
Вот ты сейчас делишь на уровни, у тебя диссонанса не возникает? Этот чат для андроида, другой для апи. Так же и с АПИ. Есть уровень ответа с кодом ошибки HTTP, есть уровень ответа с кодом API.
Mike
это ублюдская ситуация. user?id=1 - нормальная.
ублюдского-то что, можешь объяснить? Какая разница, какой интерфейс — query parameters или path segments?
.
Я, короче, считаю, что ошибки АПИ надо заворачивать в body и вы меня не переубедите.
Valentin
Вот ты сейчас делишь на уровни, у тебя диссонанса не возникает? Этот чат для андроида, другой для апи. Так же и с АПИ. Есть уровень ответа с кодом ошибки HTTP, есть уровень ответа с кодом API.
Хорошо, давайте отойдем от хттп и вернёмся к BaseResponse. Почему не сделать его типизированным? это избавит от горы лишних классов
.
Я уже обосновал. Не тот уровень инкапсуляции.
Mike
Я уже обосновал. Не тот уровень инкапсуляции.
При чём здесь инкапсуляция, когда мы интерфейсы обсуждаем?
.
А как правильно? Не тот уровень абстракции?
.
Не ООП инкапсуляция, другая, общая
Mike
А как правильно? Не тот уровень абстракции?
А я не знаю, как правильно выразить твои мысли. Если бы знал, я б не задавал таких тупых вопросов.
.
Инкапсуля́ция (лат. in capsula; от capsula «коробочка») — размещение в оболочке, изоляция, закрытие чего-либо инородного с целью исключения влияния на окружающее. Например, поместить радиоактивные отходы в капсулу, закрыть кожухом механизм, убрать мешающее в ящик или шкаф.
.
ублюдского-то что, можешь объяснить? Какая разница, какой интерфейс — query parameters или path segments?
Ты параметры передаёшь. Зачем велосипедить path segments если ты можешь прямо и непосредственно передать их в query?
.
который для этого и сделан
.
ИМЕННО для этого
Mike
Ты параметры передаёшь. Зачем велосипедить path segments если ты можешь прямо и непосредственно передать их в query?
Зачем прибегать к дурацким риторическим уловкам («велосипедить»), если по факту любой роутер справляется с обеими задачами с одинаковым успехом?
.
path - это путь, блин. какое отношение путь имеет к параметрам запроса?
Mike
а если я хочу список друзей пользователя? /user?id=1/friends уже не вписывается в стандарт
.
А если ты хочешь список друзей, то почему ты не используешь userfriends?userId=1 ?
Mike
А если ты хочешь список друзей, то почему ты не используешь userfriends?userId=1 ?
чтобы получать стройную иерархию, а не «велосипедить»
.
Так это стройная иерархия. Ты хочешь данные юзера - это одна модель. Ты хочешь друзей - это другая модель. Чо месить-то?
.
user/friends?userId=1 норм?
.
или опять не нравится?
Mike
user/friends?userId=1 норм?
иерархия потерялась. В целом не очень плохо, ссаными тряпками закидывать не стал бы, но айди юзера хочется подвинуть к юзеру
.
Ну давайте выпилим тогда нахрен параметры запроса, гет/пост для лохов, будем всё в путях передавать.
Anonymous
Так, а как гет/пост связаны с путями?
не спорь с человеком, он 10 лет апишки проектирует
Mike
Так, а как гет/пост связаны с путями?
предполагаю, что это исходит от пхпшников, которые query parameters называют $_GET, а form urlencoded или multipart fields — $_POST
.
начинал-то с пхп.
Mike
Оригинальный подход
🤷‍♂️ что ещё ожидать от шаблонизатора с поддержкой ООП?..
.
прошу извинить за терминологию
Anonymous
начинал-то с пхп.
от пхпшников всегда гавной воняло
Anonymous
ахахаха
.
от пхпшников всегда гавной воняло
не от хорошей жизни, и недолго, и очень давно.
Valentin
🤷‍♂️ что ещё ожидать от шаблонизатора с поддержкой ООП?..
Пранк шаблонизатор вышел из-под контроля
.
лет 12 так назад.
.
Короче, не согласен я с вами нифига, можно нагородить сколь угодно много ХТТП кодов и потом сидеть их в клиенте в разных классах обсасывать и обрабатывать, впихнуть тайп адаптер, но ни беку, ни вам это времени не освободит и нифига к результату не приблизит.
Valentin
не от хорошей жизни, и недолго, и очень давно.
Просто забавно, вы считаете пхп-стайл подход единственно правильным, го при этом, все ваши аргументы сводятся к таким не конструктивным фразам, как "зачем месить", "велосипедить", либо использованию нерелевантных терминов
Кирилл
Тайп адаптер будет один, и будет обрабатывать все, что раньше ложилось в BaseRepsonse
То есть в такой ситуации надо делать тайп адаптер? А то мне прошлый разраб заложил как раз архитектуру с BaseResponse потому что сервер вместо ответа может вернуть поле error. А то мне что то очень не нравится иметь класс враппер для List<Object> и тд