Skip to content
Roman Kuzmin edited this page Feb 17, 2025 · 2 revisions

API Рекомендационной системы StarBank

Описание

Данный API предоставляет клиентам персонализированные банковские рекомендации на основе их транзакционной активности.
Клиенты могут получать список доступных продуктов, управлять динамическими правилами и просматривать статистику рекомендаций.

Получение рекомендаций для пользователя

Запрос

GET /recommendation/{user_id}

Ответ

{
    "user_id": "cd515076-5d8a-44be-930e-8d4fcb79f42d",
    "recommendations": [
        {
            "name": "Простой кредит",
            "id": "ab138afb-f3ba-4a93-b74f-0fcee86d447f",
            "text": "Откройте мир выгодных кредитов с нами!"
        },
        {
            "name": "Invest 500",
            "id": "147f6a0f-3b91-413b-ab99-87f081d60d5a",
            "text": "Начните инвестировать с умом!"
        }
    ]
}

Если рекомендации отсутствуют:

{
    "user_id": "cd515076-5d8a-44be-930e-8d4fcb79f42d",
    "recommendations": []
}

Управление динамическими правилами

Создание нового правила

Позволяет создать правило, при выполнении которого пользователю будет рекомендован определенный банковский продукт.

Запрос

POST /rule

Тело запроса

{
    "product_name": "Простой кредит",
    "product_id": "ab138afb-f3ba-4a93-b74f-0fcee86d447f",
    "product_text": "Откройте мир выгодных кредитов с нами!",
    "rule": [
        {
            "query": "USER_OF",
            "arguments": ["CREDIT"],
            "negate": true
        },
        {
            "query": "TRANSACTION_SUM_COMPARE_DEPOSIT_WITHDRAW",
            "arguments": ["DEBIT", ">"],
            "negate": false
        },
        {
            "query": "TRANSACTION_SUM_COMPARE",
            "arguments": ["DEBIT", "DEPOSIT", ">", "100000"],
            "negate": false
        }
    ]
}

Ответ

{
    "id": "12345",
    "product_name": "Простой кредит",
    "product_id": "ab138afb-f3ba-4a93-b74f-0fcee86d447f",
    "product_text": "Откройте мир выгодных кредитов с нами!",
    "rule": [
        {
            "query": "USER_OF",
            "arguments": ["CREDIT"],
            "negate": true
        },
        {
            "query": "TRANSACTION_SUM_COMPARE_DEPOSIT_WITHDRAW",
            "arguments": ["DEBIT", ">"],
            "negate": false
        },
        {
            "query": "TRANSACTION_SUM_COMPARE",
            "arguments": ["DEBIT", "DEPOSIT", ">", "100000"],
            "negate": false
        }
    ]
}

Удаление правила

Удаляет правило по его ID.

Запрос

DELETE /rule/{rule_id}

Ответ

204 No Content

Получение списка всех правил

Выводит список всех активных правил, включая условия их выполнения.

Запрос

GET /rule

Ответ

{
    "data": [
        {
            "id": "12345",
            "product_name": "Простой кредит",
            "product_id": "ab138afb-f3ba-4a93-b74f-0fcee86d447f",
            "product_text": "Откройте мир выгодных кредитов с нами!",
            "rule": [
                {
                    "query": "USER_OF",
                    "arguments": ["CREDIT"],
                    "negate": true
                },
                {
                    "query": "TRANSACTION_SUM_COMPARE_DEPOSIT_WITHDRAW",
                    "arguments": ["DEBIT", ">"],
                    "negate": false
                }
            ]
        }
    ]
}

Получение статистики срабатываний правил

Позволяет узнать, сколько раз сработало каждое правило.

Запрос

GET /rule/stats

Ответ

{
    "stats": [
        {
            "rule_id": "12345",
            "count": "150"
        },
        {
            "rule_id": "67890",
            "count": "45"
        }
    ]
}

Сброс кеша рекомендаций

Очищает закешированные данные и обновляет рекомендации.

Запрос

POST /management/clear-caches

Ответ

200 OK

Получение информации о сервисе

Возвращает название и версию сервиса.

Запрос

GET /management/info

Ответ

{
    "name": "starbank-recommendation",
    "version": "1.0.0"
}

Вывод

  • Получение рекомендаций по user_id или username.
  • Гибкое управление правилами: создание, удаление, просмотр.
  • Статистика срабатываний для анализа эффективности рекомендаций.
  • Кеширование позволяет работать быстрее, при необходимости кеш можно сбросить.

Этот API предоставляет гибкую и эффективную систему персонализированных рекомендаций для клиентов банка.

Clone this wiki locally