Общие положения API Сплиттера
В этом разделе описаны основные детали API Trisigma Splitter.
Для работы с API потребуется получить Bearer-токен авторизации, который предоставляется менеджером Trisigma.
Данный токен необходимо включать в заголовок Authorization каждого запроса.
API сплиттера использует RPC-протокол на базе HTTP.
API можно тестировать без предварительно настроенных экспериментов. Однако для более точного тестирования рекомендуется завести эксперимент в Trisigma.
Для выполнения запроса необходимо делать POST-запросы вида: https://<host>/<method_name>/.
Обратите внимание: косая черта (
/) в конце адреса запроса обязательна.
Параметр <host> можно узнать у менеджера Trisigma, так как для каждого клиента он является уникальным.
Методы API
Получение списка фичей (getFeaturesByTag)
Метод getFeaturesByTag используется для получения списка фичей, связанных с заданным тегом.
Параметры запроса
Эта таблица описывает все поля, которые необходимо передать в теле JSON-запроса.
| Параметр | Тип | Описание | Обязательный |
|---|---|---|---|
tag | string | Тэг эксперимента, используемый для группировки. | Да |
platform.id | int | ID платформы (например, 1 для Desktop). | Да |
platform.version | string | Версия платформы (например, версия приложения: "2.15.0"). | Да |
participant.userId | int | ID пользователя. Хотя бы один из идентификаторов (userId или visitorId) должен быть передан. | Условно |
participant.visitorId | string | ID устройства или анонимного посетителя. Хотя бы один из идентификаторов (userId или visitorId) должен быть передан. | Условно |
randomizationUnits | list | Нет | |
randomizationUnits.type | string | Тип параметра пользователя | |
randomizationUnits.value | string | Значение параметра пользователя |
Формирование запроса
URL:
POST https://<host>/getFeaturesByTag/
Заголовки:
Authorization: Bearer <ваш_токен>
Content-Type: application/json
X-Source: local
Тело запроса:
{
"tag": "<ваш_тег>",
"platform": {
"id": 1,
"version": "2.15.0"
},
"participant": {
"userId": 123456
},
"randomizationUnits": [
{
"type": "phone_hash",
"value": "33AFF380-6289-4B76-BB19-46EB8B7D8998"
},
{
"type": "age",
"value": "30"
},
{
"type": "rating",
"value": "78"
}
]
}
Пример успешного ответа
{
"result": {
"features": [
{
"label": "test_group",
"experimentLabel": "demo_experiment",
"exposureParams": "1:2:12345"
}
]
}
}
Расшифровка ответа:
| Параметр | Тип | Описание |
|---|---|---|
label | string | Группа, в которую попал пользователь. |
experimentLabel | string | Лейбл эксперимента, который задается при создании в Trisigma. |
exposureParams | string | Внутренний параметр. Будет удален из ответа в будущих версиях. |
Алгоритм работы
- Отбор экспериментов, в которых есть переданный tag
- Проверка участия пользователя в отобранных экспериментах.
В ходе проверки переданные параметры пользователя сравниваются с конфигурацией эксперимента
Обратите внимание: В случае, когда конфигурация эксперимента требует проверки какого-то параметра пользователя (см Условия попадания в эксперимент), которого нет в запросе, эксперимент не попадёт в ответ метода. Ошибка возвращена не будет
- Сохранение информации о запросе фичи пользователя для аналитики.
- Формирование ответа