Создавайте ключи API, устанавливайте лимиты дроссельной заслонки для каждого клиента и многое другое!

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

Что ж, для поддержки всего этого AWS предоставляет готовый сервис Amazon API Gateway, который помогает нам добиться этого самым простым способом!

Что такое Amazon API Gateway?

Если оставить в стороне бизнес-логику, API Gateway — это полностью управляемая служба, которая предоставляет вам возможность создавать собственные API и развертывать их. Он также предоставляет вам инструменты мониторинга, обслуживания, безопасности и т. д.

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

Хорошо, давайте перейдем непосредственно к его реализации, подробнее о API Gateway

Шлюз API поддерживает некоторые нативные сервисы, такие как AWS Lambda, Amazon DynamoDB, Amazon EC2 и т. д. Вы можете выбрать любой из них в зависимости от вашего варианта использования, поскольку мы обсуждаем API, давайте создадим лямбда-функцию, которую вы можете рассматривать как бизнес-логику и интегрировать это с API. Если вы не знаете, что такое AWS Lambda, вот его простое определение: AWS Lambda — это сервис, который позволяет вам писать, управлять, поддерживать и размещать свой код без использования каких-либо серверов. , это, по сути, бессерверная вычислительная служба. Подробнее об AWS Lambda можно прочитать Здесь.

Давайте создадим функцию AWS Lambda

Создать лямбда-функцию в консоли AWS довольно просто и понятно, выполните следующие действия:

Откройте панель управления AWS и найдите лямбда-выражение.

Теперь вы можете увидеть приведенный ниже экран.

Здесь дайте вашей лямбда-функции имя, я назову ее как api-gateway-lambda . Выберите среду выполнения в раскрывающемся меню, я выбрал Python, если вы используете другой язык программирования, не стесняйтесь выбирать его, оставьте остальные параметры по умолчанию и нажмите Создать функцию.

Вот и все! ваша лямбда-функция с минимальным кодом будет создана и автоматически развернута, теперь вы увидите экран ниже.

И вот как будет выглядеть консоль кодирования, для меня она говорит, что изменения не развернуты, потому что я добавил оператор print в код, если вы вносите какие-либо изменения, убедитесь, что вы нажали кнопку Развернуть. Вы также можете протестировать, нажав Тестировать и следуя инструкциям на экране, это довольно просто.

Следующий шаг — создать API и интегрировать в него эту лямбда-функцию. давай сделаем это.

Как создать API с помощью Amazon API Gateway?

На панели инструментов AWS найдите API Gateway.

Теперь вы увидите экран ниже, я показал только два варианта, вы увидите несколько вариантов, таких как HTTP API, REST API (частный) и т. д. Выберите REST API, потому что HTTP API очень простой и предоставляет минимальную функциональность, поскольку мы нужны такие функции, как ключи API и ограничения регулирования, нам нужно выбрать REST API и нажать Build.

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

Что подразумевается под Edge Optimized? Запросы к Edge Optimized API направляются через сеть CloudFront, что означает, что если у вас есть клиенты по всему миру и когда они попытаются получить доступ к вашему API, они будут перенаправляются к ближайшему периферийному местоположению в CloudFront, а оттуда перенаправляются к шлюзу API, поэтому задержка будет уменьшена.

После того, как вы выбрали предпочтительные параметры, нажмите «Создать API».

Теперь вы увидите экран ниже, на этом изображении я добавил два снимка экрана, первый — это экран, который вы видите, когда нажимаете «Создать». Теперь нам нужно настроить API, поэтому нажмите «Создать ресурс».

После того, как вы нажмете «Создать ресурс», вы увидите экран ниже, здесь вы можете указать имя для своего пути, это конечная точка, которая будет использоваться при запросе любых данных. Если вы хотите, вы можете включить CORS, он в основном определяет, какие сайты могут отправлять запрос к вашему API. Просмотрите и нажмите «Создать ресурс».

Теперь ваш ресурс будет создан, если вы видите, что имя /api-gateway-tutorials — это ресурс, нажмите на него, чтобы выбрать его, а затем снова нажмите раскрывающееся меню Действия и выберите «Создать метод», вы можете выбрать любой метод, который вам нужен, Я выбрал POST, нажмите кнопку проверки.

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

Вот и все! Теперь ваш API готов, теперь нам нужно его развернуть, и мир сможет его использовать. Нажмите раскрывающееся меню Действия и выберите Развернуть API.

После того, как вы щелкнете по нему, вы увидите экран ниже, здесь выберите этап развертывания, поскольку у вас сейчас нет этапа, выберите [Новый этап]. Я дал имя в качестве продукта, предоставьте необходимые описания, они необязательны. Нажмите Развернуть.

Ваш API развернут! Вы можете просмотреть URL-адрес вызова, чтобы протестировать его, вы можете использовать Postman, если вы не знаете, что такое Postman, то это просто приложение, которое позволяет вам тестировать ваши API-запросы, в нем есть куча опций, проверьте это видео, чтобы узнать, как это работает.

Хорошо, нижеприведенный экран — это приложение Postman, создайте новый HTTP-запрос, убедитесь, что вы выбрали метод, в качестве которого развернут ваш API, вставьте URL-адрес вызова в строку запроса и убедитесь, что вы добавили конечную точку, которая /api-gateway-tutorials вы можете видите, что мы получили ответ! Потрясающий!

Как создать ключ API?

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

Если вы предоставляете API как услугу, вам нужно будет создать ключи API для своих клиентов. Вы можете создать свои собственные планы, такие как «Бесплатный», «Базовый», «Премиум» и т. д. Клиенты будут иметь различные преимущества по сравнению с выбранными ими планами, как мы можем это сделать?

Хорошо! Это довольно просто!

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

После того, как вы нажмете «Сохранить», вы увидите экран ниже. Здесь вам нужно добавить план использования, также обратите внимание, что здесь вы можете увидеть ключ API, вам нужно нажать Показать.

Как создать план использования?

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

Также укажите квоту, допустим, мой клиент может отправить миллион запросов к моему API, и после его завершения клиенту необходимо обновить план, заплатив!

Нажмите «Далее», и вам будет показан экран ниже, где вы должны связать свой API с планом, а также указать этап. Здесь имя моего API — Api-gateway, я его и выбрал. Как только это будет сделано, нажмите «Далее».

Теперь вам будет показан этот экран ниже, где вы должны добавить свой ключ API к указанному плану, теперь так вы работаете с пользователями, вы предоставляете им ключи, которые определяют их план!

Хорошо! Это базовая настройка, которая нам нужна, все, что нам нужно сделать сейчас, это включить этот ключ в наш API, и все готово! Выберите API на левой панели навигации и нажмите на метод. Вы увидите показанный экран Image 2.7, на котором вы видите 4 плитки. Нажмите Запрос метода, и вы увидите экран ниже, здесь в опции Требуется ключ API выберите раскрывающийся список и выберите true. Сохранить

Вот и все! теперь мы завершили всю настройку. Не забудьте развернуть! Нажмите раскрывающийся список действий и разверните его.

Теперь, если вы снова запустите запрос Postman, вы увидите, что API вернул Запрещено! Теперь мы защитили наш API.

ПРИМЕЧАНИЕ. Даже после развертывания может пройти некоторое время, прежде чем изменения отразятся, и вы можете получить нормальный результат. Через минуту все заработает

Теперь все, что нам нужно сделать, это скопировать ключ из консоли и указать его в заголовках в Postman. введите x-api-key в качестве имени параметра и укажите полученное значение. Жмите сохранить и запускайте!

Заключение

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

Меня зовут Мухаммад Абутахир. Вы можете связаться со мной в LinkedIn или написать мне по адресу [email protected]. Вы также можете связаться со мной в Твиттере @_tahir_official

Спасибо! Хорошего дня.

Дополнительные материалы на PlainEnglish.io. Подпишитесь на нашу бесплатную еженедельную рассылку новостей. Подпишитесь на нас в Twitter, LinkedIn, YouTube и Discord.