Создайте прокси API для защиты ваших серверов от скачков трафика и преобразования ответов сервера (XML в JSON) перед отправкой ответа.

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

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

В этой статье мы будем использовать мощный набор инструментов, предлагаемый Google Cloud Apigee, и узнаем, как мы можем защитить наши API от высоких скачков трафика и преобразовать XML-ответ от целевого сервера в JSON.

Примечание. Не волнуйтесь, если у вас нет настоящего API для работы, мы будем использовать фиктивный API в учебных целях! 😄

Что такое Google Cloud Apigee?

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

Apigee можно рассматривать как посредника между потребительским приложением (созданным разработчиком) и ресурсами вашего сервера. Обычно приложение напрямую связывается с вашим сервером для запроса ваших данных, который обрабатывает запрос и возвращает требуемый ответ. Но проблема в том, что ваш сервер открыт для потребительского приложения, и вам придется добавлять протоколы безопасности для защиты ваших ресурсов.

С Google Cloud Apigee вам не нужно беспокоиться о том, что ваш сервер будет открыт для внешнего мира. Apigee действует как прокси-сервер, который может проверять входящий запрос, запрашивать ресурсы от своего имени, если запрос действителен, и возвращать ответ клиентскому приложению.

Понимание рабочего процесса Apigee

Apigee - это прокси-сервер.

Он получает ответ от приложения-потребителя, при необходимости проверяет / преобразует его, отправляет на целевой сервер. Затем он получает ответ от целевого сервера, при необходимости манипулирует / преобразует его и отправляет обратно в приложение-потребитель. Это дает Apigee 4 области для работы.

  1. Предварительный поток прокси (потребитель отправляет запрос в Apigee)
  2. Целевой предварительный поток (Apigee перенаправляет запрос на целевой)
  3. Целевой поток сообщений (цель отправляет ответ Apigee)
  4. Proxy Post Flow (Apigee возвращает ответ потребителю)

Эти условия важны, если вы хотите управлять своими API-интерфейсами с помощью Apigee. Схема ниже поможет понять:

Создание учетной записи с Apigee

Перейдите на страницу Регистрация Apigee и создайте свою учетную запись. Обратите внимание, что уровень бесплатного пользования имеет некоторые ограничения, такие как 1 пользователь, 1 тестовая среда, ограничения вызовов API, отсутствие SLA и т. Д. Не беспокойтесь.

Обратите внимание на важное ограничение: ваша бесплатная учетная запись действительна только в течение 60 дней.

После регистрации вы попадете на панель управления Apigee.

Обратите внимание на название вашей организации в левом верхнем углу под вашим именем. Эта организация является воротами в Apigee. Поскольку мы используем бесплатную пробную версию, у нас есть суффикс ‘-eval’.

Создание вашего первого прокси API

Хорошо, давайте сейчас создадим наш первый прокси API. Щелкните «Прокси-серверы API» или перейдите на вкладку «Разработка» на боковой панели, чтобы начать создание своего первого прокси-сервера API. Вы можете увидеть несколько прокси, уже добавленных самим Apigee.

Нажмите кнопку + Прокси в правом верхнем углу.

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

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

Затем Apigee запросит у вас данные вашего прокси, такие как имя, базовый путь, описание и целевая конечная точка. Когда вы вводите имя своего прокси-сервера API, обратите внимание, что базовый путь заполняется автоматически.

Мы будем использовать https://mocktarget.apigee.net в качестве нашей целевой конечной точки, которая является фиктивной целью, созданной Apigee для наших экспериментов с API. Как задумчиво! 😃

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

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

Вот и все! Поздравления по порядку! Вы только что создали свой первый прокси-сервер API в Google Cloud Apigee! 😎

Добавление политики ареста всплеска, чтобы избежать большого трафика

Давайте посмотрим на панель управления прокси-сервером API.

Отображается следующая информация

  1. URL-адрес вашей среды развертывания
  2. Ваши конечные точки прокси
  3. Целевые конечные точки

Прежде чем мы проверим, работает ли наш прокси, нажмите https://mocktarget.apigee.net в своем браузере. Должно появиться простое сообщение Привет, Гость!.

Отлично, теперь щелкните URL-адрес в разделе развертываний. Он должен быть в следующем формате

http://<YOUR-ORG-NAME>-<ENVIRONMENT>/<BASE-PATH>

Да! Он возвращает то же сообщение, поэтому наш API-прокси действительно работает.

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

Щелкните вкладку «Разработка». Как мы обсуждали ранее, Apigee имеет прокси-поток до и после обработки, а также целевой поток до и после.

Мы добавим политику блокировки пиков в поток Proxy Pre, так как мы должны проверять пики до того, как наш прокси обработает любой запрос.

После создания политики измените значение скорости на 14:00 (2 часа в минуту) в целях тестирования.

Следуйте инструкциям, указанным ниже:

Если вы знаете, как использовать Postman, несколько раз нажмите URL-адрес развертывания. Если нет, скопируйте и вставьте URL-адрес в свой браузер и обновите страницу несколько раз.

Примерно через два звонка вы получите сообщение об ошибке от нашего прокси, как показано ниже.

{"fault":{
"faultstring":"Spike arrest violation. Allowed rate : MessageRate{messagesPerPeriod=2, periodInMicroseconds=60000000, maxBurstMessageCount=1.0}",
      "detail":{
"errorcode":"policies.ratelimit.SpikeArrestViolation"
}}}

Там! Теперь никто не сможет испортить ваш сервер, посылая слишком много запросов! 😃

Теперь давайте посмотрим, как мы можем предоставить нашим клиентам ответ в формате JSON, если наш сервер использует структуру XML для ответа на запросы.

Преобразование XML в JSON с использованием политики посредничества Apigee

Поскольку наш сервер отправляет ответ XML, Apigee должен будет преобразовать ответ из XML в JSON. Прежде чем читать дальше, можете ли вы определить, где нам нужно разместить эту политику в потоке API?

Возможны следующие варианты:

  1. Предварительный поток прокси
  2. Прокси-поток сообщений
  3. Целевой предварительный поток
  4. Целевой поток публикаций

Если вы угадали поток сообщений прокси, вы правы! Apigee получит ответ XML, преобразует его в JSON и отправит в приложение-потребитель. Нажмите https://mocktarget.apigee.net/xml, чтобы увидеть, что он возвращает ответ XML.

<root>
<city>San Jose</city>
<firstName>John</firstName>
<lastName>Doe</lastName>
<state>CA</state>
</root>

Все, что вам нужно сделать, это добавить эту политику, а Apigee позаботится обо всем остальном.

Теперь нажмите наш URL-адрес разработки, чтобы увидеть волшебство Apigee, ответ XML преобразуется в ответ JSON! Ура! 🥳

{"root":{"city":"San Jose","firstName":"John","lastName":"Doe","state":"CA"}}

Вывод

Yahoo! Мы узнали, что такое Google Cloud Apigee, как добавить политику блокировки всплесков для защиты наших ресурсов и политику XML в JSON, чтобы иметь возможность предоставлять ответ JSON, ничего не меняя на нашем сервере.

Apigee предоставляет около 30 готовых политик, включая политики безопасности и посредничества. Мы рассмотрели очень мало возможностей Apigee!

Если вас интересует разработка и управление API, но вы не знаете, с чего начать, ознакомьтесь с приведенными ниже ресурсами!

Ресурсы

  1. Лучшие Лрактики: Дизайн API
  2. Документирование ваших API с помощью спецификации OpenAPI
  3. Документация Apigee
  4. Apigee 4min видео для разработчиков

Удачного кодирования! ❤️