Перейти к основному содержимому

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 в документе.