Перейти к содержанию

Internal API Reference 🔐

Internal API предназначен для взаимодействия между внутренними компонентами системы Gifty: админ-панелью (Dashboard), воркерами парсинга и системой скоринга (Intelligence).

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

Аутентификация

Все запросы к Internal API требуют передачи токена доступа в заголовке X-Internal-Token.

Заголовок Описание
X-Internal-Token Секретный токен, заданный в настройках (INTERNAL_API_TOKEN).

🕷 Управление Парсингом (Sources)

1. Список источников (/sources)

Возвращает все зарегистрированные сайты и категории для сбора данных.

  • URL: /internal/sources
  • Метод: GET
  • Response: List[ParsingSourceSchema]

2. Детальная информация (/sources/{source_id})

Возвращает полную историю запусков, текущий конфиг и статистику конкретного парсера.

  • URL: /internal/sources/{source_id}
  • Метод: GET
  • Response: ParsingSourceSchema (включая массив history и total_items).

3. Бэклог обнаружения (/sources/backlog)

Список новых сайтов или категорий, которые система нашла автоматически, но еще не начала парсить.

  • URL: /internal/sources/backlog
  • Метод: GET
  • Response: List[ParsingSourceSchema] (объекты со статусом discovered).

4. Активация обнаруженного (/sources/backlog/activate)

Массовый перевод источников из бэклога в активный режим.

  • URL: /internal/sources/backlog/activate
  • Метод: POST
  • Body: { "source_ids": [1, 2, 3] }

5. Принудительный запуск (/{id}/force-run)

Отправляет задачу на парсинг в RabbitMQ немедленно, игнорируя расписание.

  • URL: /internal/sources/{source_id}/force-run
  • Метод: POST
  • Параметры:
    • strategy (optional): Переопределение стратегии (discovery или deep).

6. Включение/Выключение (/{id}/toggle)

Активирует или деактивирует автоматический запуск парсера по расписанию.

  • URL: /internal/sources/{source_id}/toggle
  • Метод: POST
  • Body: { "is_active": bool }

📦 Сбор и Обработка данных

1. Прием данных (/ingest-batch)

Основной эндпоинт, через который Scrapy-воркеры передают собранные товары и категории в основную БД.

  • URL: /internal/ingest-batch
  • Метод: POST
  • Body: IngestBatchRequest (список товаров и найденных категорий).

2. Статистика воркеров (/workers)

Возвращает список запущенных в данный момент Scrapy-контейнеров и их текущую загрузку.

  • URL: /internal/workers
  • Метод: GET

🧠 Интеллект и Категоризация

1. Задачи на скоринга (/scoring/tasks)

Используется внешними LLM-воркерами (например, в Kaggle/Colab) для получения товаров, которые еще не прошли оценку по 10 осям GUTG.

  • URL: /internal/scoring/tasks
  • Метод: GET
  • Параметры: limit (default: 50).

2. Задачи на маппинг категорий (/categories/tasks)

Список «сырых» категорий, полученных от парсеров, которые нужно сопоставить с внутренним деревом категорий Gifty с помощью AI.

  • URL: /internal/categories/tasks
  • Метод: GET

🛡 Доступ и Telegram

1. Управление подписчиками (/telegram/subscribers)

Управление правами доступа пользователей Telegram-бота и админ-панели (роли admin, superadmin).

2. Авторизация WebApp (/webapp/auth)

Проверка initData от Telegram Mini App для входа в Dashboard.

  • URL: /internal/webapp/auth
  • Метод: POST
  • Body: { "init_data": "..." }