У меня есть сайт SPA, настроенный с помощью REST API. Одна из проблем, с которой я столкнулся, заключается в том, как получить доступ к данным, не связанным с запрашиваемым ресурсом. В частности, доступ к данным учетной записи пользователя, чтобы я мог делать такие вещи, как скрыть действия администратора, когда пользователь не является администратором.
У меня есть конечная точка API, которая может получить все эти данные, поэтому самое простое решение - при каждой загрузке страницы запрашивать API профиля, а также фактически доступный ресурс. Кажется немного расточительным постоянно запрашивать ресурс, который редко меняется.
Другой вариант - хранить эти данные в локальном хранилище, поэтому их нужно запрашивать только один раз, но у меня возникает проблема, когда пользователь обновляет свое имя пользователя или настройки на одном устройстве, а затем у другого остаются устаревшие данные в локальное хранилище.
Я думал, что vuex может сохранить эти данные при нажатии на ссылки и переходе на разные страницы, но кажется, что данные теряются при изменении страницы.
Из того, что я понимаю, graphql решил бы эту проблему, позволив начальному запросу получить пользовательские данные вместе с другими данными. Я не совсем уверен, насколько это эффективнее, чем 2 запроса, и переписывание всего моего API, вероятно, не лучшее решение для этого.
Существуют ли хорошо известные решения этой проблемы или один из предложенных мною вариантов наилучший способ решения этой проблемы?