Amazon API Gateway – это полностью управляемый сервис для разработчиков, который упрощает публикацию, обслуживание, мониторинг, защиту и использование API в любых масштабах. Это сервис с оплатой по факту использования, который решает все трудоемкие задачи по безопасной и надежной работе API в любом масштабе.

С распространением мобильных устройств и развитием Интернета вещей (IoT) все большую важность получает задача по обеспечению доступа к серверным системам и данным для приложений посредством API. Многие приложения активно используют API, а сообщества разработчиков рассчитывают на их стабильную работу. В результате разработка API и управление ими отнимают все больше времени и сил. Для упрощения работы с API сервис API Gateway может генерировать клиентские SDK на многих языках, включая JavaScript, iOS и Android.

Поддержка API RESTful и API WebSocket

Сервис API Gateway позволяет создавать API RESTful, используя API HTTP (режим ознакомления) или API REST. С помощью интерфейсов API HTTP можно создавать высокопроизводительные и экономичные API, которым нужны только функциональные возможности прокси‑сервера для API и которые оптимизированы для обработки бессерверных рабочих нагрузок. Интерфейсы API REST предлагают функции прокси‑сервера для API и возможности управления в одном решении. При создании приложений для двустороннего взаимодействия в режиме реального времени, таких как чаты и панели для потоковой передачи данных, можно использовать интерфейсы API WebSocket. Подробнее об API RESTful и API WebSocket из API Gateway см. на нашей странице вопросов и ответов.

Стабильная работа

API Gateway позволяет управлять входящим трафиком серверных систем путем установки правил ограничения нагрузки на основании количества запросов в секунду для каждого HTTP‑метода в API. API Gateway обрабатывает все уровни трафика, получаемые API, поэтому вы можете сконцентрироваться на функциональном коде и сервисах вместо управления инфраструктурой. Кроме того, при использовании API REST существует возможность формирования кэша с настраиваемыми ключами и временем жизни в секундах для API, чтобы исключить обращение к серверным системам при каждом запросе.

Простое создание и развертывание API

С помощью API Gateway можно быстро и просто создавать собственные API для кода AWS Lambda и затем вызывать этот код с помощью API. API Gateway может исполнять код AWS Lambda в рамках аккаунта, запускать конечные автоматы AWS Step Functions, а также вызывать AWS Elastic Beanstalk, Amazon EC2 или сетевые сервисы за пределами AWS с публичными адресами HTTP. Используя консоль API Gateway, можно задавать интерфейс REST API и связанные с ним ресурсы и методы, управлять жизненным циклом API, генерировать собственные клиентские SDK и просматривать метрики API.

Мониторинг операций с API

После развертывания и начала использования API можно визуально отслеживать вызовы сервисов на панели управления API Gateway. Консоль API Gateway интегрирована с Amazon CloudWatch, что позволяет вам получать метрики производительности сервера с указанием вызовов API, задержки и коэффициента ошибок. Так как API Gateway использует CloudWatch для записи результатов мониторинга, можно устанавливать и настраивать уведомления для API сервиса API Gateway. API Gateway также может записывать информацию об ошибках в работе API в логи CloudWatch, что упрощает отладку.

Авторизация AWS

При авторизации и проверке запросов API к другим сервисам AWS API Gateway может помочь внедрить подпись версии 4 для API REST и API WebSocket. Для аутентификации с помощью подписи версии 4 можно использовать AWS Identity and Access Management (IAM) и настраиваемые политики авторизации доступа к API и другим ресурсам AWS. Для проверки и авторизации токенов носителей, таких как токены JWT или утверждения SAML, можно также использовать возможности AWS Lambda.

Ключи API для сторонних разработчиков

Если вы используете API REST, API Gateway позволяет управлять сетью сторонних разработчиков, имеющих доступ к вашим API. Вы можете создавать ключи API в API Gateway, устанавливать тонкие настройки доступа для каждого ключа API и передавать их сторонним разработчикам для предоставления доступа к вашим API. Можно также определить планы, устанавливающие предельные квоты на ограничения и запросы для каждого ключа API в отдельности. Использование ключей API не является обязательным и должно быть активировано для каждого метода отдельно.

Генерирование SDK

Если вы используете API REST, Amazon API Gateway может генерировать для некоторых платформ клиентские SDK, которые можно использовать для быстрого тестирования новых API в приложениях и передачи SDK сторонним разработчикам. Эти SDK используют ключи API и запросы на подпись с помощью данных AWS, подтверждающих права доступа. API Gateway может генерировать клиентские SDK для Java, JavaScript, Java для Android, Objective-C или Swift для iOS и Ruby. Можно использовать интерфейс командной строки AWS для генерирования и скачивания комплекта SDK API для поддерживаемой платформы с помощью команды get‑sdk.

Управление жизненным циклом API

Если вы используете API REST, API Gateway позволяет одновременно использовать несколько версий одного API, поэтому приложения могут вызывать предыдущие версии API, даже если опубликованы более новые версии. API Gateway также позволяет управлять такими стадиями выпуска, как альфа, бета и рабочая стадия, для каждой версии API. Каждую стадию API можно настроить для взаимодействия с разными серверными конечными точками с учетом настроек API. Определенным стадиям и версиям API можно назначить пользовательское доменное имя и управлять ими с помощью API Gateway. Функция управления стадиями выпуска и версиями позволяет удобно тестировать новые версии API с улучшенными или расширенными функциональными возможностями и обеспечивает обратную совместимость по мере того, как сообщества пользователей переходят к использованию последних версий.