Nikolay
вот у меня и вопрос - почему?
Легаси стайл какой нибудь
Вадим
думаю мож какой-то смысл тонкий есть
Вадим
10 лет назад видел, щас вижу
Nikolay
10 лет назад видел, щас вижу
Ну это пережиток, люди как делали, так и делают
Вадим
джуны с универа делают
Михаил
ребят, холивар зреет ответ очень прост. код ответа и тело ответа обычно лежат в разных местах (особенно на фронте) И если фронт просит отдавать им success => true - значит отдавайте, потому что контракт формируют они
Вадим
а если ещё рядом попросит error: false отдавать, тоже отдать?
Вадим
ну уж нет
Михаил
если вы делаете апи для фронта - то пусть они управляют контрактом, то что попросят то и надо отдавать
Вадим
фронты редко умные
Вадим
вот прям редко
Вадим
сори если тут есть фронты :)
Михаил
ой фу, попахивает дескриминацией
Вадим
давать им контракты составлять - там такое начнётся
Vlad
если вы делаете апи для фронта - то пусть они управляют контрактом, то что попросят то и надо отдавать
откуда такое мнение? А если фронта два? А если фронт + потребитель на стороне. Чушь какая-то, контракт формирует бекенд
Михаил
Контракт формируется компромиссно, а если они всякую дичь попросят отдавать, то тоже?
всё верно, но момент когда следует противится явно наступает позже чем "мы хотим что бы вы отдавали error: false"
Михаил
откуда такое мнение? А если фронта два? А если фронт + потребитель на стороне. Чушь какая-то, контракт формирует бекенд
почитайте про bff в таком случае, или делайте несколько эндпоинтов. Про фронт + потребитель на стороне вообще молчу - это точно разные эндпоинты. А если вы SOAP захотите? Фронту тоже прогнуться стоит?
Maksim
вот у меня и вопрос - почему?
Ну разве что как доп контроль. Типа если что-то пойдет не так и сервер с какого-то перепугу будет выдавать статус 200, но код будет или не отрабатывать или отрабатывать с ошибкой.
Nikolay
Упрощения чего?)
Чтобы не париться с кодами
Maksim
Чтобы не париться с кодами
get().then(() => { // статус 200 }).catсh(() => { // статус 500, 404 и т.д. }) Короче проблем там нет никаких с контролем. Наборот геморой дополнительный.
Maksim
тогда error:false надо делать, вдруг и второй уровень не отработает
Ну и бывает ещё вариант статус 200, но в теле warning, deprecated или ещё чё нить )
Михаил
плюс берите в учёт соверменные фреймворки, там могут быть неудобны делать catch на каждый чих
Михаил
Короче если фронт просит так - делайте. Мне вот интересно, а если фронт попросит вебсокеты и отсылать ивентами вы (кто против законодательства со стороны фронта) тоже в позу встанете и скажите "а вы по ресту долбитесь"?
Вадим
Maksim
бывает всякое, но это не значит что это хорошо
Ну у тебя был вопрос почему, вот я и привел варианты)
Михаил
Вадим
Ну у тебя был вопрос почему, вот я и привел варианты)
ну всмысле ты бекендер и ты с варнинги присылаешь с 200
Maksim
ну всмысле ты бекендер и ты с варнинги присылаешь с 200
Ну, бывает и такое ) Возьми какой нить битрикс, там тебе и на fatal error будет 200 сыпать 😁
Вадим
как Михаил сказал, важен контекст
Вадим
:)
Михаил
Да важен не контекст а контракт. Если так договорились - так и делайте. Не существует абсолютно правильных решений, так как правильность субъективна. Есть решения которые приносят пользу - вот и следуйте им.
Maksim
Ну или ещё вариант, когда нужно конкретизировать статус и одним http кодом его не опишешь. Но эт уже не про success: true ) Он конечно в целом не сильно нужен в современных реалиях)
Эдуард
да, скорее всего запускал через php -S localhost:8080 -t public/
я развернул в докере и проблема осталась)
Михаил
я развернул в докере и проблема осталась)
блин, ну что мне докерфайл тебе сделать чтоль
Эдуард
докер у меня рабочий
Эдуард
но на гите моем есть
Эдуард
https://github.com/nucleusgenius2/docer
Эдуард
проблема явно не внем
Михаил
ну давай я попробую docker compose сделаю
Михаил
слушай, ты пока удали var (внутри проекта) и перезапусти сервер
Эдуард
Михаил
ну так, на всякий случай
Михаил
это могло просто не засериализоваться
Михаил
сделай dd($request)
Эдуард
Эдуард
f ye d ll
Эдуард
в дд вроде данные есть
Эдуард
все
Эдуард
Михаил
вооо
Эдуард
а че он их нормально не отдает
Эдуард
вооо
есть идеи?
Михаил
а че он их нормально не отдает
а получить их можно через dd($request->query->get('name')); или просто через dd($request->get('name')); или через dd($request->query->all()); (оно выведет все)
Эдуард
а почему без дд не работает?
Михаил
а как БЕЗ дд код выглядит?
Kirill
а я так и не понял что не так
Эдуард
выше показывла ответ без дд
Эдуард
Kirill
и что?
Эдуард
вот реквест
Эдуард
без дд
Kirill
ну т.е. в чём проблема?
Эдуард
'get' => $request
Эдуард
ну т.е. в чём проблема?
в том что он пустой без данных
Kirill
что гет => реквест?
Kirill
в том что он пустой без данных
а почему должен быть с данными?
Эдуард
бе дд отдает пустоту
Михаил
'get' => $request
вооо - это уже проблема сериализации. симфа не может засериализовать ответ
Эдуард
потомучто в нем должны быть данные реквеста