Наше SPA приложение состоит из 3-х страниц, главная, личный кабинет и поиск. Приложение без SSR. Нужна возможность включать или выключать определенную функциональность у части пользователей. Например, для пользователей с русским языком должен отображаться блок из новостей на главной странице, а для всех остальных этого блока нет.
Такое сервис уже существует. У него есть где-то админка, через которую мы можем сегментировать пользователей и управлять набором функциональности. У этого сервиса есть готовая API с нужным для нас эндпоинтом. Формат:
Request
{
userAgent: string,
lang: string,
keys: string[] // ex. ['showNews', 'showPopup', 'canDoSmth']
}
Response
{
key: string,
value: boolean
}[]
Нужно написать клиента для этой API и описать его интеграцию с приложением. Очень бы хотелось, переиспользовать этот клиент и в других продуктах компании.
- Инкапсулирован и его можно легко перенести в отдельный пакет для переиспользования
- Запрос только нужных приложению флагов
- Перезапрашивать все флаги в случае изменения одного из базовых параметров контекста, например языка
- Динамическая догрузка необходимых флагов при переходе на другую страницу
- Использовать значения флагов в любом месте (ui, бизнес-логике)
- Приложение должно реактивно измениться в зависимости от флагов
Описать концепт, и набросать прототип без деталей реализации.
- Концепции работы, что правильно хранить в этом сервисе, а что нет.
- Флоу работы (инициализация, загрузка, использование)
- Хранение данных
- Использование в флагов
- Методы по взаимодействию
- Публичный интерфейс
- Из чего состоит пакет