Можно ли журналирование действий пользователя реализовать на front-end?
Есть веб-приложение (backend + frontend). Нужно сделать журналирование действий пользователя. К примеру, поменял аватарку, поменял какие-то поля в профиле, всё это нужно логировать и скидывать в общую базу логов по профилям.
На какой стороне это лучше реализовать? Именно парсинг изменений профиля. То что база на back-end это само собой, но какой стороне сообщать об изменениях? На данный момент я хочу сделать это на фронт-енд, и слать отдельный HTTP POST запрос прямиком из фронт-энда на отдельный модуль бэк-энда в базу данных журнала HTTP POST journals/. Правильно ли это? Получается, если раньше шёл один HTTP PUT (обновление) запрос, то теперь с фронт-энда пойдут 2 запроса: обновление самого профиля и второй запрос на добавления лога в журнал. Естественно, лог добавится только в том случае, если пришёл успешный ответ от обновления профиля (первый запрос)
Нет, не правильно.
Фронт не должен содержать в себе бизнес-логику.
Хотя бы по той причине что любой запрос фронта могут заблокировать или видоизменить.
На бэк энде очень сложно отследить изменения профиля. Дело в том, что профиль передаётся сразу обновлённый на бэк энд. То есть фронт энд обновляет профиль, и уже обновлённый профиль шлёт на бэк энд. В роли фронт энда Angular (MVC фреймворк)
Urukhayy, данные хранятся в базе.
У вас есть метод который обновляет данные в базе.
Соответственно вот этот метод и нужно научить находить разницу было/стало и писать её в журнал.
Дмитрий Энтелис, Как вариант тоже думал. Но меня смутило то, что метод разрастётся сильно, если захочу не только лог. Что если обернуть этот метод в другой, новый метод?