☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
сервер может быть долбаебом и слать 200 при 404/400 и т.д.
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
если тебе это не нужно, ты работаешь с этим сам, то зачем туда что-то класть??
Anonymous
Ограничится заголовками
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
ну нет
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
если !== 200 то надо бы причину указать
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
с другой стороны, если при 200 надо обновить данные, то надо бы и данные вложить в ответ
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
кто знает, может 200 сервера не то что ждал клиент и данные будут иными
Anonymous
Ну да, в ряде случаев совсем не обязательно отправлять данные. То есть либо ок либо не ок и тогда уже что именно не ок положить в json. А если ок, то не парсить json
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
на вкус и цвет, но по ошибкам рест рулит
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
если не ок можно просто вернуть статусом
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
с сообщением
Anonymous
на вкус и цвет, но по ошибкам рест рулит
Считаете, что нужно через рест обязательно?
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
там не нужны структуры
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
структуры вообще для структур которые структурированны
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
нет, просто к примеру привел
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
есть 100500 парадигм, и эта мне нравится больше) но это только на мой вкус)
Anonymous
Ну вот пользователь меняет свою дату рождения. Отправляет дату аяксом. В ответ пришло 200. Достаточно?
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
тут найдется хх как минимум с советами status: ok или status: error
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Anonymous
тут найдется хх как минимум с советами status: ok или status: error
Так вот я это и имею в виду. Это обязательно, желательно или в этом нет необходимости?
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Так вот я это и имею в виду. Это обязательно, желательно или в этом нет необходимости?
это на вкус и цвет, я не считаю это хорошей практикой. Это пережитки 200х
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
уже давно есть другие возможности и техники
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
но кто-то задает тренд поддерживая это УГ
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Anonymous
Пока что понял, что единого мнения нет: делай, как считаешь нужным
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Пока что понял, что единого мнения нет: делай, как считаешь нужным
просто нет желания навязывать свое) в быстрых проектах нет смысла заморачиваться, а крупных вообще можно работать через единый рест. Если на фронте самописные ajax на каждый пчих то все равно что ты будешь использовать, если какой-нить ангуляр то смысла нет спрашивать и так понятно что надо вернуть ) Это специфично, нет смысла думать что надо делать только так.
Anonymous
В любом случае спасибо за содержательные ответы
Ceyhun
а как вы храните настройки пользователей? например, где указываете currency для пользователя.
Andrew
а как вы храните настройки пользователей? например, где указываете currency для пользователя.
Сейчас бы я сделал таблицу с полями userId и json. Потому что все время приходят требования добавить какое-нибудь поле, а все время лезть в миграции надоело
Максим
Сейчас бы я сделал таблицу с полями userId и json. Потому что все время приходят требования добавить какое-нибудь поле, а все время лезть в миграции надоело
Можно в админке сделать интерфейс, который будет добавлять разные настройки, и дополнительную таблицу, чтобы хранить значение настройки конкретного юзера. И не нужны миграции
Максим
Итого две таблицы - список настроек и связующая таблица значений настройки и пользователя
Максим
setting_id только
Andrew
Как раз сейчас параллельно работаю над фриланс проектом, который так сделан. Плююсь. Ну я ангажирован джаваскриптом)
Максим
Ну тут тоже есть недостатки. Например, постоянно придется вносить коррективы в валидацию при добавлении новых настроек
Максим
Но и json имеет недостатки. Например, поиск по этому полю, или добавление новой настройки всем юзерам в их json
Максим
Для курса наверное лучше отдельное поле сделать, и при авторизации оно будет доступно везде в identity, не надо дополнительный запрос отправлять
Artёm
есть полноценный поиск во многих БД.
Artёm
последний мускул также поддерживает.
Максим
последний мускул также поддерживает.
Не юзал никогда поля json не в курсе возможностей. Но как по мне в таком формате настройки лучше не хранить
Artёm
вместо одной таблицы с json параметром Вы предлагаете использовать 2, да еще и заморачиваться с сохарнением в каждую из них. и почему настройки лучше не хранить в формате json?
Artёm
есть объективные показатели или просто нет опыта использования?
Максим
вместо одной таблицы с json параметром Вы предлагаете использовать 2, да еще и заморачиваться с сохарнением в каждую из них. и почему настройки лучше не хранить в формате json?
На мой взгляд, лучше всего сделать отдельное поле. Промежуточная таблица нужна скорее когда надо часто и много данных менять или добавлять.
Максим
есть объективные показатели или просто нет опыта использования?
Нет опыта использования. Не попадалась задача, когда хранение данных в базе в json дало бы какие то преимущества
Tim
ребят привет. надо при сохранении модели получить поля которые были изменены. как сделать?
Tim
да. какраз нашел только что)) спасибо)
Alexey
ребята, подскажите идею как реализовать следующее: в црм есть события, которые повторяются через определенные промежутки времени, например событие повторяется каждый вторник, в БД хранится день недели в который оно срабатывает и timestamp ближайшего срабатывания, крон пробегается по здачам, которые должны сегодня сработать и переносит timestamp на следующий вторник. Заказчик хочет чтобы повторяющееся событие в таблице списка событий было выведено несколько раз, т.е. например если выбран интервал 1 мес., то нужно чтобы это событие было выведено в каждом вторнике, а если ежедневное событие, то в каждом дне его выводить. Записывать в БД на будущее сразу на все вторники? Но тогда сколько этих записей должно быть на будущее? )) Или можно как-то клонировать эту запись уже после выборки из БД?
Alexey
загвоздка именно с повторяющимися событиями, с запланированными все просто, они выводятся в дату, на которую запланированы.
Dmitriy
загвоздка именно с повторяющимися событиями, с запланированными все просто, они выводятся в дату, на которую запланированы.
У вас есть день недели(день месяца), я сделал бы так, брал текущий день недели(заданный) и искал совпадения, если есть то что-то выводил... Как-то так, решение в лоб
Alexey
т.е. в цикле перебирать не массив событий, а дни заданного диапазона (например за месяц) и сверять день недели? Тогда не получится сортировать и фильтровать таблицу по атрибутам события.
Alexey
вот макет с повторяющимися событиями https://monosnap.com/file/7S34IW9972M2wkYFeSCWW70XSCs8Q3.png
SiZE
ребята, подскажите идею как реализовать следующее: в црм есть события, которые повторяются через определенные промежутки времени, например событие повторяется каждый вторник, в БД хранится день недели в который оно срабатывает и timestamp ближайшего срабатывания, крон пробегается по здачам, которые должны сегодня сработать и переносит timestamp на следующий вторник. Заказчик хочет чтобы повторяющееся событие в таблице списка событий было выведено несколько раз, т.е. например если выбран интервал 1 мес., то нужно чтобы это событие было выведено в каждом вторнике, а если ежедневное событие, то в каждом дне его выводить. Записывать в БД на будущее сразу на все вторники? Но тогда сколько этих записей должно быть на будущее? )) Или можно как-то клонировать эту запись уже после выборки из БД?
Храни только номер дня недели. Вычисляешь ближайшую дату на этот день, остальные через интервал. Все средствами бд
SiZE
Можешь конечно лог срабатываний вести
Vano
вот макет с повторяющимися событиями https://monosnap.com/file/7S34IW9972M2wkYFeSCWW70XSCs8Q3.png
только у меня задачи еще и на паузу можно ставить :)
Vano
так вот, основная мысль: для каждой задачи, независимо от того, будет она сейчас выполняться или нет, считать next_run и записывать в поле базы
Vano
а дальше кроном ловить задачи, у которых next_run <= now, не забывая потом высчитать новый next_run
Alexey
а дальше кроном ловить задачи, у которых next_run <= now, не забывая потом высчитать новый next_run
Я так и делаю, но загвоздка в том как вывести повторы в будущем
Vano
задач много?
Vano
сколько ноликов?
Alexey
Пока мало до тысячи, систему только начали делать
Vano
ну тогда так: - делаешь пагинацию, чем меньше страница - тем лучше - вытягиваешь чанк задач в оперативку - перебором клонируешь каждую задачу до X повторов, вставляя обратно в коллекцию - сортируешь по дате - выводишь профит
Vano
смысл - не клонировать их в базе, там должна быть одна запись просто при выборке добавляешь виртуальные повторы
Vano
так как клон от оригинала отличается только датой следующего запуска, можно даже __clone у модели переделать работа с datetime - быстрая штука по факту, ты можешь в оперативке хоть все задачи клонировать главное, чтоб оперативки хватало, ибо ООП - тяжелая хрень в плане памяти
Alexey
uksort() ?
Alexey
нужно перебрать модели в датапровайдере и добавить туда клоны с сортировкой, верно?
Vano
точно
The Ant
позволяет как периодические записи хранить, так и одиночные
The Ant
имею в виду` */30 * * * *` эту херь