Создайте прокси 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 области для работы.
- Предварительный поток прокси (потребитель отправляет запрос в Apigee)
- Целевой предварительный поток (Apigee перенаправляет запрос на целевой)
- Целевой поток сообщений (цель отправляет ответ Apigee)
- 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.
Отображается следующая информация
- URL-адрес вашей среды развертывания
- Ваши конечные точки прокси
- Целевые конечные точки
Прежде чем мы проверим, работает ли наш прокси, нажмите 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?
Возможны следующие варианты:
- Предварительный поток прокси
- Прокси-поток сообщений
- Целевой предварительный поток
- Целевой поток публикаций
Если вы угадали поток сообщений прокси, вы правы! 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, но вы не знаете, с чего начать, ознакомьтесь с приведенными ниже ресурсами!
Ресурсы
- Лучшие Лрактики: Дизайн API
- Документирование ваших API с помощью спецификации OpenAPI
- Документация Apigee
- Apigee 4min видео для разработчиков
Удачного кодирования! ❤️