Node.js SDK
Создание экземпляра класса Sigma
При создании экземпляра класса Sigma нужно передать параметры конфигурации:
-
token: stringобязательный. Токен проекта, который можно получить в админ-панели. -
userData: objectнеобязательный. Объект с пользовательскими данными. SDK целиком и полностью полагаются на предоставленные данные (методы по раздаче эксперимента, фича-флагов и т.п.) Подробнее.... -
options: objectнеобязательный. Объект с дополнительными настройками. Доступные параметры:api: string- значение по умолчанию 'https://api.expf.ru/api/v1/'. URL для получения данныхcacheTTL: number- значение по умолчанию 10 секунд. Время жизни кэша в секундахfetchTimeout: number- значение по умолчанию: 5000 мс. Максимальное время ожидания ответа от сервера (мс)postfix: stringзначение по умолчанию ''. Постфикс для создания нескольких экземпляров класса
Полный пример:
const Sigma = require('expf-sigma-node.js').default;
const token = <TOKEN>;
const userData = {
userId: 'userId',
email: 'example@mail.ru',
custom: {
new_user: true,
level: 2
},
}
const options = {
cacheTTL: 60,
fetchTimeout: 60000,
postfix: 'default',
};
const sigma = new Sigma(token, userData, options);
Устаревший способ (до версии 3.6.0)
const Sigma = require('expf-sigma-node.js').default;
const token = <TOKEN>;
const userData = {
userId: 'id',
email: 'example@email',
appVersion: '1.0.1',
ip: '70.123.12.84',
custom:{ cookieKey: '1', isActive: false }
};
const cacheTtl = 300;
const options = {
postfix: 'default',
};
const sigma = new Sigma(token, userData, cacheTtl, options);
Методы Sigma
| sigma | создает экземпляр класса, настраивает параметры конфигурации |
| sigma.checkFlag | возвращает значение эксперимента по ФФ или значение фича флага |
| sigma.getExperiment | определяет группу в которую попал пользователь в эксперименте (не вызывается отдельно) |
| getParamValue | возвращает значение фича флага в экспериментах по параметрам |
| getFeatureValue | возвращает значение фича флага в экспериментах по фича флагам |
| sigma.getAllUserExperiments | возвращает названия всех экспериментов и индекс группы в которую попал пользователь |
| sigma.editUserProperties | позволяет изменять или удалять свойства userData. Этот метод содержит цепочку вызовов, в которой необходимо вызывать следующий метод для выполнения операций над свойствами userData |
| sigma.clearUserProperties | позволяет удалить часть свойств userData |
Все методы (кроме sigma.editUserProperties() sigma.clearUserProperties()) выполняются асинхронно. Сначала происходит проверка наличия конфига в хранилище. Если конфига нет, то он добавляется. Если конфиг уже существует, то происходит проверка временной метки последнего обновления конфига. При необходимости выполняется запрос и конфига обновляется. Это позволяет сократить количество запросов к API при использовании более чем одного метода Sigma в документе.