Главная/Документация/Источники данных/Практические примеры конфигурации…
Источники данных

Практические примеры конфигурации API-источников

Руководство содержит примеры настройки API-источников для популярных сервисов и типовых шаблонов использования.

Реальные конфигурации и шаблоны использования API-источников для популярных сервисов.

Это руководство предоставляет практические примеры настройки API-источников для популярных сервисов и типовых шаблонов использования.

Примеры конфигурации

GitHub API

terminaljson
{
  "type": "api",
  "name": "GitHub",
  "tagline": "Access GitHub repositories, issues, and pull requests",
  "icon": "https://github.githubassets.com/favicons/favicon.svg",
  "api": {
    "baseUrl": "https://api.github.com",
    "testEndpoint": "/user",
    "authType": "bearer"
  }
}

Примеры запросов, которые может выполнять агент:

terminalbash
# List repositories
GET /user/repos

# Create an issue
POST /repos/{owner}/{repo}/issues
{"title": "Bug report", "body": "Description"}

# Get pull request
GET /repos/{owner}/{repo}/pulls/{pull_number}

OpenAI API

terminaljson
{
  "type": "api",
  "name": "OpenAI",
  "tagline": "Generate text and embeddings with GPT models",
  "icon": "https://openai.com/favicon.ico",
  "api": {
    "baseUrl": "https://api.openai.com/v1",
    "testEndpoint": "/models",
    "authType": "bearer"
  }
}

Stripe API

terminaljson
{
  "type": "api",
  "name": "Stripe",
  "tagline": "Manage payments, customers, and subscriptions",
  "icon": "https://stripe.com/favicon.ico",
  "api": {
    "baseUrl": "https://api.stripe.com/v1",
    "testEndpoint": "/customers?limit=1",
    "authType": "bearer"
  }
}

SendGrid API

terminaljson
{
  "type": "api",
  "name": "SendGrid",
  "tagline": "Send transactional and marketing emails",
  "icon": "https://sendgrid.com/favicon.ico",
  "api": {
    "baseUrl": "https://api.sendgrid.com/v3",
    "testEndpoint": "/user/profile",
    "authType": "bearer"
  }
}

Twilio API

terminaljson
{
  "type": "api",
  "name": "Twilio",
  "tagline": "Send SMS and make voice calls",
  "icon": "https://www.twilio.com/favicon.ico",
  "api": {
    "baseUrl": "https://api.twilio.com/2010-04-01",
    "testEndpoint": "/Accounts/{AccountSid}.json",
    "authType": "basic"
  }
}

Twilio использует базовую аутентификацию с вашим Account SID в качестве имени пользователя и Auth Token в качестве пароля.

Шаблоны аутентификации

Bearer Token (Самый распространённый)

Используется большинством современных API:

terminaljson
{
  "api": {
    "baseUrl": "https://api.example.com",
    "authType": "bearer"
  }
}

Сервисы, использующие bearer-токены:

  • GitHub
  • OpenAI
  • Stripe
  • SendGrid
  • Slack

Пользовательский заголовок

Некоторые API используют пользовательские имена заголовков:

terminaljson
{
  "api": {
    "baseUrl": "https://api.exa.ai",
    "authType": "header",
    "headerName": "x-api-key"
  }
}

Сервисы, использующие пользовательские заголовки:

  • Exa (x-api-key)
  • Anthropic (x-api-key)
  • AWS services (various)

Параметр запроса

Устаревшие API часто используют аутентификацию через параметр запроса:

terminaljson
{
  "api": {
    "baseUrl": "https://api.weatherapi.com/v1",
    "authType": "query",
    "queryParam": "key"
  }
}

Это добавляет `?key={your_api_key}` к запросам.

Базовая аутентификация

Для API, требующих имя пользователя/пароль:

terminaljson
{
  "api": {
    "baseUrl": "https://api.twilio.com",
    "authType": "basic"
  }
}

Вы будете запрошены для ввода имени пользователя и пароля.

Типовые шаблоны

API с версионированными базовыми URL

Включите версию в базовый URL:

terminaljson
{
  "api": {
    "baseUrl": "https://api.example.com/v1"
  }
}

API с URL, зависящими от租户

Для многоклиентских API:

terminaljson
{
  "api": {
    "baseUrl": "https://your-tenant.api.example.com"
  }
}

Самохозяйственные API

Для внутренних или самохозяйственных сервисов:

terminaljson
{
  "api": {
    "baseUrl": "https://internal-api.yourcompany.com",
    "testEndpoint": "/health"
  }
}

Выбор тестового эндпоинта

Выберите эндпоинт, который:

  • Требует аутентификации (проверяет учётные данные)
  • Возвращает быстро (лёгкий ответ)
  • Всегда доступен (не подвержен ограничению скорости)
Шаблон Пример Примечания
Информация о пользователе/аккаунте /user, /me, /account Проверяет аутентификацию, возвращает данные пользователя
Проверка состояния /health, /ping, /status Может не требовать аутентификации
Список с ограничением /items?limit=1 Проверяет аутентификацию с минимальными данными

Избегайте использования эндпоинтов, которые изменяют данные, в качестве тестовых. Ограничьтесь GET-запросами, которые только читают информацию.

Работа с API-источниками

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

Формат запроса

Агент использует HTTP-инструмент для выполнения запросов:

terminalbash
Make a GET request to /users/123
terminalbash
POST to /messages with body: {"text": "Hello", "channel": "general"}

Заголовки и тело

Агент может указывать:

  • HTTP-метод (GET, POST, PUT, DELETE, PATCH)
  • Путь (относительно базового URL)
  • Параметры запроса
  • Тело запроса (JSON по умолчанию)
  • Дополнительные заголовки

Заголовки аутентификации добавляются автоматически.

Сырые (не JSON) тела запросов

По умолчанию параметры тела запроса кодируются в JSON. Для эндпоинтов, ожидающих plain text, XML или другие не JSON-типы контента, агент может использовать параметр _rawBody:

terminalbash
POST to /documents/review with params: { "_rawBody": "approved", "_contentType": "text/plain" }
Параметр Тип Описание
_rawBody string Отправляется как тело запроса без кодирования в JSON
_contentType string Устанавливает заголовок Content-Type (по умолчанию text/plain, если не указан)

Используйте _rawBody, когда эндпоинт API ожидает plain string, XML-полезную нагрузку или любое другое не JSON-тело. Значение отправляется точно так, как предоставлено — без сериализации.

Обработка ответов

Ответы API обрабатываются интеллектуально:

  • JSON-ответы разбираются и представляются понятно
  • Большие ответы могут быть свернуты
  • Ошибки сообщаются с кодами статуса и сообщениями
  • Ограничения скорости отображаются для помощи в отладке

Устранение неполадок

Тест подключения завершается ошибкой

  • Проверьте правильность и доступность базового URL
  • Убедитесь, что тестовый эндпоинт существует и правильно написан
  • Убедитесь, что учётные данные действительны и имеют необходимые разрешения
  • Некоторые API требуют определённых заголовков — проверьте документацию

Аутентификация не работает

  • Убедитесь, что вы используете правильный тип аутентификации
  • Для bearer-токенов убедитесь, что токен не истёк
  • Для базовой аутентификации проверьте правильность имени пользователя и пароля
  • Проверьте, требует ли API дополнительных заголовков

Запросы возвращают ошибки

  • Проверьте документацию API на наличие обязательных параметров
  • Убедитесь, что путь эндпоинта указан правильно
  • Убедитесь, что формат тела запроса соответствует ожиданиям
  • Проверьте ограничения скорости или квоты

Неправильный заголовок аутентификации

  • Используйте headerName, чтобы указать пользовательские имена заголовков для типа аутентификации header
  • Используйте queryParam, чтобы указать имя параметра запроса для типа аутентификации query
  • Используйте authScheme, чтобы настроить префикс bearer (по умолчанию: "Bearer")

Нужен такой агент в вашей компании?

Устанавливаем под ключ: настройка на компьютерах сотрудников, единый аккаунт, интеграция с 1С и внутренними системами, обучение команды. Подробнее о внедрении →