Aleksandr
а чем ани-спам не подходит?)
Юра
Тем что боты все равно добавляются и они все равно постят
Юра
В идеале антиспам это вторая линия защиты
Юра
А не первая )
Aleksandr
поискать другую капчу)
Михаил
Стоп, а если мы тут будем обсуждать itшные зарплаты и куда податься, чтоб больше заработать, нас бот тоже забанит?
Михаил
Он, судя по всему через нейронку прогоняет сообщение и принимает решение. (Щас был алерт по поводу забаненного пользака)
Михаил
Михаил
А, ок
Михаил
Всем, привет🙂
Михаил
Добрый день. Посоветуйте, мне для простого сайта на пхп нужен модуль авторизации, аутентификации. Есть ли на симфони готовые шаблоны, библиотеки?
Aleksandr
https://symfony.com/doc/current/security.html#form-login
Михаил
Aleksandr
Maks
Aleksandr
https://docs.anthropic.com/en/docs/agents-and-tools/claude-code/overview
Юра
Кто-то пробовал?
Aleksandr
я
Юра
Мне бы пригодилос на пхпюнит 12 миграцию сделать )
Aleksandr
деньги жрет быстро)
Aleksandr
и по уровню как мидл
Юра
Ну мидл тоже деньги жрет быстро
Юра
)
Aleksandr
ну почти каждый запрос -20\50 центов
Юра
Мде
Aleksandr
пока дорого
Юра
Так оно прям в проекте файлы меняет?
Aleksandr
да
Aleksandr
Юра
Ему контекста хватает на весь проект?
Юра
А то это же вроде основная проблема текущих ллм
Юра
И вообще не понятно. Оно весь проект херачит куда-то в облако что-ли?
Aleksandr
Ему контекста хватает на весь проект?
ну чуть меньше можно чем обычно
Юра
Вопрос холиварный. Есть ендпоинт который либо возвращает данные либо создает их в базе и возвращает. Нормально ли для такого ендпоинта использовать GET метод?
Юра
Кто что думает
Enrinko
А не лучше через миддлвару сделать?
Юра
Бот что-ли)
Павел
Вопрос холиварный. Есть ендпоинт который либо возвращает данные либо создает их в базе и возвращает. Нормально ли для такого ендпоинта использовать GET метод?
проголосую за нормально. Так как контракт подразумевает возврат данных, и для клиента +- прозрачно, а что там внутри может быть... логи,аналитика - тоже пишутся.
Enrinko
Бот что-ли)
Да чо бот то сразу?
Enrinko
middlware который обрабатывает запрос на наличие данных, и на эндпоинте уже чисто логика получения
Павел
middlware который обрабатывает запрос на наличие данных, и на эндпоинте уже чисто логика получения
От этого сайдэффект записи не исчезнет и ничего в вопрос не добавляет
Юра
Вопрос про то нормально ли GET хттп метод использовать
mrFANRA
Вопрос про то нормально ли GET хттп метод использовать
если по ссылке могут боты поисковиков ходить например то ненормально )
Enrinko
Ну, в таком случае - нет. С мидлой - думаю да.
Сергей
Или запись с дефолтными значениями?
Юра
Запись с дефолт
Сергей
Тогда нормально думаю. Создание это чисто сайдэффект, а по сути это геттер
Михаил
Вопрос холиварный. Есть ендпоинт который либо возвращает данные либо создает их в базе и возвращает. Нормально ли для такого ендпоинта использовать GET метод?
Да - нормально Но есть ряд но: Если эту ручку дёргает фронт то можно конечно на них взволить эту обязанность А если это апи - то как, то обманывать робота не хорошо.
Михаил
А предметно это что?
Юра
Дёргает фронт грубо говорят что-то типо пользовательских ачивок
Михаил
Дёргает фронт грубо говорят что-то типо пользовательских ачивок
А, типо и если пользователь запрашивает их в первый раз, то создаём их?
The Ant
Но с другой стороны Яндекс метрика отправляет данные гет запросом через параметры в урле. И никто вроде как не умер. Меньше гемора с корс. Так что хз 😁
Михаил
Гет запрос должен быть идемпотентным. Так что нет.
Чот я щас завис А как гет может быть идепотентным?
Михаил
Может ты имеешь ввиду «чистые функции» и отсутствие side эффектов, а не неповторяемость ?
The Ant
Мож путаю чё такое Идем потентность 😰
Михаил
Ну тогда ты про сайд эффекты, да согласен
Михаил
И наверное не просто данные на сервере а персистентные хранилища. те хранилища где обидают бизнес сущности
Михаил
Редис то можно обновить )
Павел
Мож путаю чё такое Идем потентность 😰
Ты не путаешь, но тоже размазать можно понятие. Потому что например ответ будет одним и тем же, а значит идемпотентным
Михаил
Ты не путаешь, но тоже размазать можно понятие. Потому что например ответ будет одним и тем же, а значит идемпотентным
путает. идемпотентность это про повторимость результата сервер не может гарантировать повторимость результата при фильтрации (поиске) к примеру но может гарантировать при POST и PUT но не может при GET и PATCH хотя большие лбы могут знать больше - это чисто моё мнение
Михаил
Паша, да ладно, я пошутил
Павел
путает. идемпотентность это про повторимость результата сервер не может гарантировать повторимость результата при фильтрации (поиске) к примеру но может гарантировать при POST и PUT но не может при GET и PATCH хотя большие лбы могут знать больше - это чисто моё мнение
Результатов чего. Кто то считает что состояния сервера, кто то ответа на запрос. Например post создающий новые записи явно не идемпотентный для сервера. Но при этом можно передавать ключ идемпотентности. Get + фильтры будут отдавать разные рещультаты, только при других запросах параллельно, но не меняют базу. Короче ну такое себе... Можно долго вести беседу и главное бессмысленно кто что как считает)
Павел
А если ещё и кэши прикрутить которые сбрасываются и пишут на get - ууууу)
Михаил
Ну да, ты прав. Могу ещё вкинуть что вцелом в рамках запроса может измениться состояние (уровни изоляции, отсутсвие мютексов) Так что да тема для бигбрейнов Как сказал коллега у меня на работе «ну все расходимся json-ы раскладывать»
Михаил
А вообще чем больше об этом думаю - тем больше кажется это нормальной темой. Допустим есть ютуб. Предположим что до 2010 года для того, что бы грузить видосы надо было регистрировать специальный аккаунт. Но после 2010 бизнес подумал "а пусть у нас все пользаки могут загружать видосы" Что имеем как программисты. 1) Нужно создать таблицу и сущность для "Студии" 2) При регистрации нового пользователя автоматом создавать "Студию" пользователю Но что делать если у нас сотни миллионов уже существующих пользаков. Делать всё на фронте (на GET студии возвращать 404 и тогда пусть фронт отправит POST на создание студии) или сразу на GET создавать студию
Михаил
Это как инвариант. Гарантировать его на каждом шаге - сложно, но в определённых контрольных точках - спокойно
Юра
Там в стандарте есть ещё такое понятие как safe method
Юра
Вот что пишут
Юра
Even if safe methods have a read-only semantic, servers can alter their state: e.g. they can log or keep statistics. What is important here is that by calling a safe method, the client doesn't request any server change itself, and therefore won't create an unnecessary load or burden for the server. Browsers can call safe methods without fearing to cause any harm to the server; this allows them to perform activities like pre-fetching without risk. Web crawlers also rely on calling safe methods.
Юра
Вот по этому пункту вроде бы такой ГЕТ не очень подходит
Юра
Так как он считается safe
Юра
Вообще весь стандарт хттп можно трактовать по разному слишком он расплывчатый
Юра
Но чисто интуитивно когда я вижу ГЕТ запрос я не ожидаю что там под капотом происходит создание чего-то в базе
Maks
счетчик инкрементить по гету ок, создавать дефолты нет) логичнее (для меня) какой нибудь листнер на регистрацию юзера, добавил бы дефолты
Maks
или я бы захардкодил дефолты на фронте)