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

Управление API

Управление API — это сервис для администрирования API. В сервисе можно:

  • Собрать все API в одном месте;

    Импортируйте ваши API в сервис с помощью веб-интерфейса. При импорте сервис проверит соответствие описания API спецификации OpenAPI.

  • Конфигурировать API;

    Управляйте жизненным циклом и доступностью API.

  • Подключить политики к API;

    Устанавливайте лимиты или квоты, требование авторизации или срок доступа ключей. Созданная политика может распространяться на несколько API.

  • Управлять списком поставщиков или потребителей API;

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

  • Добавить плагины к методам API;

    С помощью плагинов можно, например, изменить метод запроса или подключить защиту от SQL-инъекций.

  • Маскировать данные;

    При журналировании запросов конфиденциальные данные можно заменить на произвольные символы или фиктивные данные. Полезно, если вы работайте с персональными данными. Маскирование поддерживается в теле и заголовках запроса, параметрах пути URL и параметрах запроса Query Path.

  • Получить аналитику по использованию API.

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

А также:

  • Настроить аутентификацию для API;
  • Экспортировать описание API;
  • Сравнить API между собой;
  • Управлять SSL-сертификатами;
  • Вести различные справочники;
  • Настроить кэширование безопасных запросов к Endpoint'у;
  • Управлять версиями API;
  • Посмотреть журнал запросов к API.

Управление API поставляется вместе с Аудитом.

К Управлению API можно подключить следующие модули:

  • Мониторинг
  • Журналирование
  • Трассировка

Подробнее о сервисах на соответствующих страницах.

Состав сервиса

Схема связей между компонентами зависит от выбранной заказчиком конфигурации. При полной конфигурации схема выглядит следующим образом:

Платформа API

На схеме:

  1. Сервис конвертации — сервис для конвертации расширенной спецификации API в ApiDefinition.
  2. База данных (PostgreSQL) — база данных для хранения настроек Управления API и настроек шлюзов.
  3. Сервис проверки электронной подписи — сервис для проверки электронной подписи Реестра API при импорте в Управление API расширенной спецификации API.
  4. Библиотека для отправки и обработки изменений — библиотека для инструментов резервирования Управления API.
  5. Аудит — сервис для получения и хранения событий аудита.
  6. UI сервиса.
  7. Backend сервиса.
  8. База данных (PostgreSQL) — база данных для хранения настроек Управления API и настроек шлюзов.
  9. Ролевая модель — сервис для хранения списка пользователей и присвоенных им ролей.
  10. Сбор аналитики по использованию API из OpenSearch.
  11. Multi Data Centre Bridge (MDCB) — сервис–мост для централизованного управления несколькими независимыми кластерами Tyk. Обеспечивает плавный переход API между средами, зонами доступности и сегментированными узлами.
  12. Платформа API (изолированная от внешней сети).
  13. OpenSearch — долговременное хранилище событий и логов шлюза Tyk–Gateway.
  14. Очередь сообщений (RabbitMQ) — очередь доставки изменений настроек API и доступов к ним для MDCB.
  15. Kafka адаптер — адаптер между MDCB и Kafka шлюзов различных систем, которые не могут подключиться к Управлению API по протоколу gRPC.
  16. Реестр API — сервис для проектирования и управления спецификациями API.
  17. Сервис сбора аналитики с Платформ API.
  18. Очередь сообщений (Kafka) — распределенная платформа для обработки потоков данных.
  19. Журналирование — сервис для среднесрочного хранения логов системы.
  20. Прикладной и системный мониторинг — сервис для отслеживания состояния программной и аппаратной частей сервиса.
  21. Платформа API (с доступом к внешней сети).

Стек

Технологический стек Управление API представлен в следующей таблице.

КомпонентОписание
Astra LinuxОС для виртуальных серверов
Kubernetes ClusterПлатформа контейнеризации приложений
NGINXРеверсивный прокси для балансировки нагрузки и обеспечения отказоустойчивости сервиса
PostgreSQLСУБД для хранения API и справочников
OpenSearchДолговременное хранилище логов событий шлюза API
RabbitMQБрокер сообщений для доставки описаний API в Multi Data Centre Bridge
PrometheusМониторинг приложений
KafkaРаспределенная платформа для обработки потоков данных

Плагины

В Управлении API можно подключить плагины к методу API. Плагин выступает в роле посредника между API и приложением, т.е. изменяет описанную в спецификации API логику. Для подключения доступны следующие плагины:

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

  • Whitelist: делает доступными только те Endpoint'ы, которые указал пользователь;
  • Blacklist: делает недоступными Endpoint'ы, которые указал пользователь;
  • JWT Payload Shift
  • Token Exchange
  • Validate Claims JWT
  • Deactivation Token
  • Check Certificate
  • Check Permissions

Модификация

  • URL Rewrite: трансформирует URL запроса по указанному шаблону (для SOAP интеграций);
  • Mock Response: отправляет ответ-заглушку вместо указанного в логике API ответа;
  • Method Transform: изменяет метод запроса;
  • Modify Headers: изменяет HTTP(S) заголовки запроса или ответа;
  • Body Transform: изменяет тело запроса или ответа по указанному шаблону;
  • Do Not Track Endpoint: отключает генерацию событий аналитики при обработке запроса.
  • Virtual endpoint
  • Decode Base 64

Безопасность

  • SQL Injection Check: проверяет запрос или ответ на наличие SQL-инъекции;
  • DLP Check Request Handler: отправляет запрос для проверки на утечку данных;
  • Antivirus Check
  • Check File Content Type
  • Sandbox Check

Валидация и контроль

  • Validate JSON: валидирует JSON body запроса;
  • Validate JSON Response Handler: проверяет соответствие ответа схеме JSON.
  • Validate Swagger
  • Validate XML
  • Validate XML SOAP

Лимитирование

  • Circuit Breaker: отключает шлюз на указанный промежуток времени, если количество ответов с кодом 5ХХ превысило установленный поставщиком API лимит;
  • Request Size Limit: устанавливает ограничение на размер запроса (в МБ);
  • Enforced Timeout: возвращает ошибку при превышении указанного времени обработки запроса;

Мониторинг и аналитика

  • Track Endpoint: генерирует события аналитики при обработке запроса;
  • Uptime tests

Другие

  • Internal: делает Endpoint доступным только для других обработчиков шлюза API;
  • Cache: позволяет кэшировать запросы (все, кроме POST, PUT и DELETE);
  • Global version settings
  • Selector-Target-Url