Рубріки: Теория

Что такое API Gateway: введение

Сергій Бондаренко

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

Что такое API Gateway

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

API Gateway — один из основных паттернов, вокруг которого строится микросервисная архитектура. Его реализация преследует ряд целей:

  • Первое — Route. Мы выставляем во внешний мир один адрес, но так как у нас много микросервисов, нам необходимо перенаправлять запросы на инстансы этих микросервисов.
  • Следующая цель данной технологии — построение бэкенда для фронтенда одностраничных приложений.
  • API Gateway это способ разделения клиентского программного интерфейса от вашей внутренней реализации. Когда клиент делает запрос, шлюз API автоматически разбивает его на несколько запросов, направляет их в нужные места, выдает ответ и все отслеживает.
  • Агрегация.
  • Кеширование.
  • Безопасность — одна из самых важных задач, которые решает API Gateway, потому что эта система стоит на входе в нашу инфраструктуру и именно на границе мы решаем вопрос безопасности, после чего уже имеем дело с доверенной зоной (DMZ).

Курсы от наших друзей помогут вам выйти на новый уровень знаний, рекомендуем ознакомиться с занятиями от школ Hillel и Mate Academy.

Как работает API Gateway

Рассмотрим простой пример. Предположим, мы имеем серверную конфигурацию с высокой загруженностью сетевыми запросами. Для того, чтобы ответить на один-единственный запрос такой системе необходимо получить и обработать данные из самых разных источников. 

Например, мы имеем магазин, который работает в мобильной и десктопной версии, а также он общается по API с мобильными приложениями.

Для отображения товара у нас задействована цепочка запросов к разным службам — одна хранит отзывы покупателей о конкретной позиции, другая содержит характеристики товара, третья — отвечает за наличие и т.д. Подключив API-шлюз мы можем осуществлять контроль поступающего трафика серверных систем. Для этого составляются четкие правила распределения нагрузки. Обычно API Gateway работает как некий буфер между пользователями и произвольным числом API-сервисов (API), выступая в роли обратного прокси, как Nginx и HAProxy.

Через этот шлюз проходят все клиентские API-запросы, которые затем перенаправляются в соответствующий микросервис с маршрутизацией, структурой и преобразованием протокола. Обычно система на лету анализирует исходный запрос, вызывая несколько микросервисов и собирая данные для определения наилучшего пути. 

Преимущества облачных API Gateway

Различные облачные реализации API Gateway удобны в использовании и значительно экономят время разработки. Они принимают и обрабатывают клиентские запросы к различным службам, управляют функциями сервисов и реализуют бизнес-логику. Кроме того, облачные API Gateway поддерживают интеграцию с облачными сервисами и настраивается это очень быстро, буквально за пару минут. 

Система автоматического масштабирования обеспечивает минимально возможный отклик на запрос. Облачные Gateway могут контролировать периодичность запросов для каждого HTTP-метода и формировать кеш с настраиваемыми ключами и определением таймаута в секундах. Обычно, облачные системы API Gateway позволяют выполнять контроль различных показателей, показывая в удобном интерфейсе, например, число ошибок или задержку вызова. 

Популярные облачные решения

Azure API Management

На данный момент существуют несколько популярных облачных платформ, которые предоставляют возможности создания единой точки входа в приложения. Прежде всего, это — Azure API Management, продукт компании Microsoft.

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

Amazon API Gateway

Схожий облачный сервис есть и у гиганта Amazon, но со своими особенностями. Знакомство с ним и понимание настроек очень упрощает интуитивный и понятный интерфейс для HTTP API. Посредством HTTP API разработчик может быстро сконфигурировать cross-origin resource sharing (CORS). API шлюз от Амазон обеспечивает совместное использование пользовательских доменов для REST API и HTTP API. Такая гибкость дает возможность разработчикам применять разные типы API-интерфейсов (REST и HTTP) в одном приложении.

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

Опционально в API Gateway можно создавать ключи API. Для любого отдельного ключа возможна подробная настройка доступа — в каждом методе это активируется отдельно.

Чтобы можно было оперативно протестировать новые API в приложениях, Amazon API Gateway создает для отдельных платформ клиентские SDK. Для подтверждения прав доступа эти SDK используют ключи API, а также запросы на подпись с помощью данных AWS. API Gateway генерирует клиентские SDK для Java, JavaScript, Java для Android, Objective-C или Swift для iOS и Ruby. 

А еще в сервисе от Amazon имеется прекрасная документация и огромная коллекция (более пятисот) видео-курсов. Вдобавок ко всему Amazon API Gateway доступен бесплатно, до тех пор, пока количество запросов в месяц не превысит:

  • миллион запросов полученных для API REST.
  • миллион запросов для API HTTP.
  • миллион запросов или 750 000 минут подключения для API WebSocket.

Oracle

Аналогичный сервис от Oracle представляется как альтернатива популярным AWS. Oracle обещает более эффективное соотношение цены и производительности. Oracle API Gateway доступен в Windows, Linux и Solaris. Обеспечивается совместимость с LDAP, Microsoft Active Directory, Oracle Access Manager, CA SiteMinder, Entrust GetAccess, IBM Tivoli Access Manager, RSA Access Manager и другими продуктами для обмена мгновенными сообщениями.

Шлюз взаимодействует с Microsoft .NET, Oracle WebLogic, IBM WebSphere и SAP NetWeaver. Все сервисы платформы Oracle интегрируется с IAM для идентификации и авторизации (консоль, SDK или CLI и REST API).

С помощью Policy Studio к шлюзу API добавляются политики безопасности и управления, а также есть возможность управления версиями политик на нескольких шлюзах API — централизованно, а не отдельно на каждом шлюзе API. API Gateway может аутентифицировать внешних клиентов по имени пользователя и паролю, а затем выдавать токены SAML.

Для аудита и отчетности по нагрузке во всех точках входа используется инструмент Oracle API Gateway Analytics. Данный инструмент также обеспечивает анализ первопричин, выявляя общие точки отказа в мультисервисных транзакциях. Если служба выходит из строя и влияет на транзакцию в целом, API Gateway Analytics может обнаружить это и сгенерировать предупреждения.

Заключение

На данный момент есть несколько альтернативных решений (которые интересны как по возможностям, так и методам реализации), например, Yandex API Gateway, SberCloud API Gateway или Google API Gateway, но о них мы поговорим в другой раз. Ограничимся тем, что выше рассмотрели самые популярные и стандартные решения. В заключение мы рекомендуем посмотреть видео, в котором рассказывается про различные динамические сценарии использования API Gateway:

Останні статті

Обучение Power BI – какие онлайн курсы аналитики выбрать

Сегодня мы поговорим о том, как выбрать лучшие курсы Power BI в Украине, особенно для…

13.01.2024

Work.ua назвал самые конкурентные вакансии в IТ за 2023 год

В 2023 году во всех крупнейших регионах конкуренция за вакансию выросла на 5–12%. Не исключением…

08.12.2023

Украинская IT-рекрутерка создала бесплатный трекер поиска работы

Unicorn Hunter/Talent Manager Лина Калиш создала бесплатный трекер поиска работы в Notion, систематизирующий все этапы…

07.12.2023

Mate academy отправит работников в 10-дневный оплачиваемый отпуск

Edtech-стартап Mate academy принял решение отправить своих работников в десятидневный отпуск – с 25 декабря…

07.12.2023

Переписки, фото, история браузера: киевский программист зарабатывал на шпионаже

Служба безопасности Украины задержала в Киеве 46-летнего программиста, который за деньги устанавливал шпионские программы и…

07.12.2023

Как вырасти до сеньйора? Девелопер создал популярную подборку на Github

IT-специалист Джордан Катлер создал и выложил на Github подборку разнообразных ресурсов, которые помогут достичь уровня…

07.12.2023