Объяснение работы API-прокси: Может ли он работать как API-шлюз и какой из них выбрать?

от Dan Goodin
02 Ноя 2022

"Эксперт в прокси и VPN. Будучи сертифицированным специалистом по кибербезопасности, Дэн охватывает самые разные темы - от утечки данных до фишинга. Делится ли он новостями или результатами собственных исследований, его контент всегда наводит на размышления и дает ценные инсайты."

Proxy API Explained
Что такое API-прокси? Понимание API не является проблемой после объяснения

Вы наверняка неоднократно встречали в Интернете термин API. Это аббревиатура интерфейса прикладного программирования (API), который служит мостом между двумя приложениями и позволяет им общаться друг с другом.

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

Что такое API?

API означает интерфейс программирования приложений (Application Programming Interface, API), широко используемый термин в Интернете. Каждый пользователь смартфона нуждается в API для использования различных мобильных приложений и выполнения различных функций в Интернете. Понимание API необходимо для изучения API-прокси, API-шлюзов и сравнения API-прокси и API-шлюзов.

Но что же делает API? Попробуем разобраться в этом термине на примере.

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

Распространенными примерами интеграции API являются фрагменты погоды, цифровые платежи через PayPal, вход в мобильные приложения, бронирование путешествий и боты в Twitter.

Что такое API-прокси?

Proxy API scheme
На схеме показано, как работает API прокси-сервера

Прокси — это некий промежуточный элемент, арбитр или посредник для существующего процесса, коммуникационного цикла или сервиса. ИТ-специалисты используют различные прокси для разделения двух программных компонентов: фронтенда и бэкенд-сервиса. Этот процесс позволяет этим компонентам развиваться и функционировать независимо друг от друга после развертывания в двух разных местах.

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

Прокси API несколько отличается от шлюза. Первый имеет ограниченные возможности, в то время как второй является более продвинутым в плане безопасности, ограничения скорости и мониторинга API. Хотя proxy API может выступать в роли шлюза API, они выполняют разные функции и не могут быть полностью заменены друг другом.

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

Что такое API-шлюз?

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

Например, когда API-шлюз получает запросы клиентов на доступ к серверу, он применяет политики аутентификации и авторизации для обеспечения повышенной безопасности. После завершения аутентификации запросы направляются к внутренним сервисам. Этот дополнительный шаг позволяет минимизировать риски безопасности, связанные с управлением корпоративными API, и улучшить мониторинг API.

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

Шлюзы API предлагают все необходимое для эффективного управления API — от создания и управления API до предоставления данных из других источников, таких как сервисы AWS, веб-сервисы SOAP и Lambda.

API-прокси может выступать в качестве API-шлюза

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

Но вопрос в том, какой из них более оптимален и в целом лучше? Кто побеждает в гонке, когда речь заходит об API Proxy против API Gateway?

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

Итак, давайте рассмотрим плюсы и минусы использования API Proxy в качестве API-шлюза.

Плюсы

Ниже приведены некоторые причины, по которым следует использовать API Proxy в качестве API-шлюза:

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

Минусы

Ниже приведены некоторые причины, по которым не следует использовать API-прокси в качестве API-шлюза:

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

Как создать или где получить API-прокси

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

Поэтому, прежде чем приступить к созданию API-прокси, проанализируйте по порядку следующие аспекты:

1. Список ассоциированных API

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

2. Сопоставление рабочих процессов

Сопоставление рабочих процессов позволяет разработчикам при проектировании API-прокси постоянно просматривать сообщения, проходящие между элементами фронтенда и бэкенда. Поток должен быть оптимизирован с точки зрения производительности и стоимости для принятия своевременных мер в случае необходимости. Например, может потребоваться сделать API-прокси масштабируемым, используя высокомасштабируемые элементы фронтенда. Это поможет эффективно управлять ограниченными мощностями внутренних элементов.

3. Выбор подходящей модели развития

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

4. Выбор инструмента API-прокси с необходимой поддержкой политик

Настоятельно рекомендуется выбирать инструментарий API Proxy со встроенной поддержкой политик API proxy. Выбор инструментария с расширенными возможностями поможет разработать оптимальные API-прокси и избавит от необходимости переделывать процесс при изменении требований.

5. Функциональное и нагрузочное тестирование

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

6. Добавьте API-прокси в список зависимостей

Как уже объяснялось ранее, API-прокси очень чувствительны и могут стать нефункциональными даже при незначительном изменении одного из API. В некоторых случаях могут возникнуть проблемы с данными или параметрами, что сделает операции некорректными. Чтобы избежать подобных проблем, не забудьте добавить вновь созданный API-прокси в список зависимостей для обоих API.

После проверки всех разделов выполните следующие простые шаги для создания API-прокси через Edge UI:

1. Перейдите в браузере на сайт apigee.com/edge и войдите в свою учетную запись

2. На панели управления выберите пункт «Прокси API» в разделе «Разработка«.

Dashboard to get API proxies
Панель управления для получения прокси-серверов API

3. Выберите предпочтительную среду для создания нового API-прокси из Apigee UI

4. Нажмите пункт Создать новый и выберите тип прокси-сервера

Create proxy API 
Нажмите или щелкните кнопку Создать новый и выберите оптимальный тип прокси-сервера

5. Наиболее часто используется метод обратного прокси. Выберите эту опцию из списка, в результате чего появится страница с подробной информацией о прокси-сервере

6. Настройте данные прокси-сервера:

  • Имя прокси: Дайте уникальное имя вашему прокси (например, myproxy)
  • Базовый путь прокси-сервера: Установите путь к /myproxy
  • Описание: Введите краткое описание нового API-прокси (Примечание: Этот шаг необязателен).
  • Цель (существующий API): Введите https://mocktarget.apigee.net, чтобы определить целевой URL, вызываемый Apigee Edge при запросе пользователя через API Proxy.

7. Предварительно просмотрите данные прокси-сервера и нажмите кнопку Далее

Proxy details
Если все реквизиты прокси-сервера указаны верно, нажмите кнопку для продолжения

8. В разделе Политики выберите пункт Проход (без авторизации) в разделе Общие политики и нажмите Далее

Policies
Если все реквизиты прокси-сервера указаны верно, нажмите кнопку для продолжения

9. В разделе Виртуальные хосты отметьте оба варианта — по умолчанию и безопасный — и нажмите Далее

Virtual hosts
Перед началом работы выберите пункт по умолчанию и безопасно

10. Выберите тестовую среду в разделе Optional Deployment в секции Summary и нажмите кнопку Создать и установить.

Proxy summary
Завершающим этапом является тестирование и развертывание

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

The deployed proxy 
Теперь прокси-сервер может обрабатывать запросы

Заключительные слова

API означает интерфейс прикладного программирования (Application Programming Interface), который служит мостом между двумя приложениями и помогает им в общении. Таким образом, это серверы-посредники между фронтендом и бэкендом, которые обрабатывают запросы пользователей и направляют их соответствующим бэкенд-службам.

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

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

Мы используем файлы cookie на нашем сайте, чтобы обеспечить вам наилучшее качество просмотра.Продолжая просматривать сайт, вы соглашаетесь с этим использованием. Более подробную информацию о том, как мы используем файлы cookie, см. в Политике конфиденциальности.

Понятно

Мы добавили этот прокси в список сравнения