Что такое API прокси
API прокси (API Gateway) — это промежуточный сервер, который принимает API-запросы от клиентов, обрабатывает их и пересылает к backend-сервисам. В отличие от обычных HTTP-прокси, API Gateway специализируется на управлении API-трафиком: маршрутизация, аутентификация, rate limiting, трансформация и мониторинг.
API Gateway — ключевой компонент микросервисной архитектуры и важный инструмент для безопасного предоставления API внешним потребителям.
Роли API прокси
1. Единая точка входа
Клиенты обращаются к одному адресу (api.example.com), а gateway маршрутизирует запросы к нужным микросервисам:
- api.example.com/users → user-service
- api.example.com/orders → order-service
- api.example.com/products → product-service
2. Аутентификация и авторизация
Gateway проверяет API-ключи, JWT-токены, OAuth credentials до того, как запрос дойдёт до backend. Это снимает нагрузку с микросервисов.
3. Rate Limiting
Ограничение количества запросов от одного клиента/IP за период времени. Защита от злоупотреблений и перегрузки.
4. Трансформация запросов
Модификация заголовков, параметров, тела запроса/ответа. Например, конвертация XML в JSON для legacy-сервисов.
5. Кэширование
Кэширование ответов API для снижения нагрузки на backend и ускорения ответов.
6. Мониторинг и логирование
Сбор метрик по каждому API-эндпоинту: количество запросов, latency, error rate.
API Gateway в контексте прокси
Отличия от обычного reverse proxy
| Параметр | Reverse Proxy (Nginx) | API Gateway |
|---|---|---|
| Фокус | HTTP-трафик общего назначения | API-специфичный трафик |
| Маршрутизация | По URL/Host | По API path, version, headers |
| Auth | Базовая | OAuth, JWT, API keys, HMAC |
| Rate Limiting | Простой (per IP) | Продвинутый (per user, per plan) |
| Трансформация | Минимальная | Полная (JSON/XML, protocol) |
| Версионирование | Нет | /v1/, /v2/ маршрутизация |
| Developer Portal | Нет | Документация, ключи, мониторинг |
API Gateway как прокси для внешних API
Помимо роли фронтального gateway для своих сервисов, API прокси используют для доступа к внешним API:
- Агрегация — объединение запросов к нескольким API в один
- Обход rate limits — распределение запросов через пул IP
- Кэширование — снижение количества реальных запросов к API
- Failover — переключение между API-провайдерами
Популярные API Gateway решения
Open Source
| Решение | Язык | Особенности |
|---|---|---|
| Kong | Lua/Go | Самый популярный, плагинная архитектура |
| Tyk | Go | Встроенная аналитика и portal |
| KrakenD | Go | Ультра-быстрый, stateless |
| APISIX | Lua | Apache Foundation, динамическая маршрутизация |
| Gravitee | Java | Event-native, policy-based |
Облачные
| Решение | Провайдер | Особенности |
|---|---|---|
| AWS API Gateway | Amazon | Интеграция с Lambda, полностью managed |
| Azure API Management | Microsoft | Developer portal, полная платформа |
| Google Cloud Endpoints | gRPC-нативный, Cloud Run интеграция | |
| Cloudflare API Shield | Cloudflare | DDoS-защита, edge-размещение |
Паттерны использования API прокси
API Composition
Gateway объединяет ответы от нескольких микросервисов в один ответ клиенту.
Backend for Frontend (BFF)
Отдельные API Gateway для разных клиентов (мобильное приложение, веб, IoT). Каждый оптимизирован под свой тип клиента.
API Versioning
Маршрутизация запросов на разные версии backend:
- /api/v1/users → старый сервис
- /api/v2/users → новый сервис
Circuit Breaker
Автоматическое отключение проблемного backend при превышении порога ошибок. Запросы возвращают fallback-ответ.
Request Shadowing
Дублирование трафика на тестовый backend для нагрузочного тестирования без влияния на production.
API прокси для обхода ограничений
Проксирование платных API
Создание прокси перед платным API для:
- Добавления кэширования (снижение расходов)
- Мониторинга расхода
- Fallback на альтернативный API
- Rate limiting на стороне клиента
Обход CORS
API прокси на вашем домене решает проблему CORS при обращении к внешним API из браузера.
Трансформация протоколов
Конвертация между REST, GraphQL, gRPC, SOAP через API Gateway. Клиент общается по одному протоколу, backend — по другому.
Безопасность API Gateway
Основные меры
- TLS termination — HTTPS на входе
- Input validation — проверка параметров запросов
- IP whitelisting — ограничение доступа по IP
- JWT validation — проверка токенов
- Request size limiting — ограничение размера запросов
- SQL injection protection — фильтрация вредоносных запросов
WAF интеграция
API Gateway часто интегрируется с Web Application Firewall для дополнительной защиты от атак.
Заключение
API прокси и API Gateway — специализированный тип прокси для управления API-трафиком. Они обеспечивают безопасность, масштабируемость и наблюдаемость API. В микросервисной архитектуре API Gateway — незаменимый компонент, а в контексте работы с внешними API — мощный инструмент оптимизации и контроля.