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

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

Е, за да поддържа всичко това, AWS ви предоставя готова услуга, Amazon API Gateway, която ни помага да постигнем това по най-простия начин!

Какво представлява Amazon API Gateway?

Като оставим настрана бизнес логиката тук, API Gateway е напълно управлявана услуга, която ви предоставя възможността да създавате свои собствени API и да ги внедрявате. Той също така ви предоставя инструменти за наблюдение, поддръжка, сигурност и т.н.

API не са нищо друго освен врата за достъп до данните, всякаква бизнес логика и функционалност от бекенд услугите. Мислете за това по следния начин, ако искате да отидете до магазин, за да вземете хранителни стоки, поемате по определен път, преминавате през него и го взимате. Това е точната аналогия с API-тата! За достъп до кода, който определя вашата бизнес логика или за получаване на данните, API са средата или интерфейс. Това е причината да се наричат ​​Интерфейс за програмиране на приложения

Добре, нека да преминем направо към внедряването му, прочетете повече за API Gateway

API Gateway поддържа някои собствени услуги като AWS Lambda, Amazon DynamoDB, Amazon EC2 и т.н. Можете да изберете каквото искате в зависимост от вашия случай на употреба, тъй като обсъждаме API, нека създадем ламбда функция, която можете да разглеждате като бизнес логика и да интегрирате то с API. Ако не знаете какво е AWS Lambda, тогава ето едно просто определение за него, AWS Lambda е услуга, която ви позволява да пишете, управлявате, поддържате и хоствате своя код, без да се налага да използвате сървъри , това е основно изчислителна услуга без сървър. Можете да прочетете повече за AWS Lambda Тук.

Нека създадем функция AWS Lambda

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

Отворете таблото за управление на AWS и потърсете lambda

Сега можете да видите екрана по-долу

Ето, дайте име на вашата ламбда функция, аз я назовавам като 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 Gateway, следователно забавянето ще бъде намалено.

След като сте избрали предпочитаните опции, щракнете върху Създаване на API

Сега ще видите екрана по-долу, в това изображение добавих две екранни снимки, първата е екранът, който виждате, когато щракнете върху създаване. Сега трябва да настроим API, така че щракнете върху Създаване на ресурс.

След като щракнете върху Създаване на ресурс, ще видите екрана по-долу, тук можете да посочите името на вашия път, това е крайната точка, която ще се използва при заявяване на каквито и да е данни. Ако искате, можете да активирате CORS, той основно управлява кои сайтове могат да изпращат заявката до вашия API. Прегледайте и щракнете върху Създаване на ресурс.

Сега вашият ресурс ще бъде създаден, ако видите името /api-gateway-tutorials е ресурсът, щракнете върху него, за да го изберете и сега щракнете отново върху падащото меню Действия и изберете Създаване на метод, можете да изберете какъвто и да е метод, от който се нуждаете, Избрах ПУБЛИКУВАНЕ,щракнете върху бутона за отметка.

След като вашият метод е създаден, можете да видите екрана по-долу. Тази стъпка е да интегрираме ламбда функцията, която създадохме, към приложния програмен интерфейс (API), който току-що създадохме, изберете тип интеграция като функция ламбда, проверете Използване на интеграция на ламбда проксии се уверете, че сте го избрали, защото това ще добавете допълнителни параметри като заглавки, метод, ресурс и т.н. Това ще се изисква от функцията Lambda, за да стане API. Изберете региона, в който присъства вашата Lambda и изберете функцията, вижте маркираните секции на екрана по-долу. Кликнете върху Запазване.

Това е! Вашият API вече е готов, сега трябва да го внедрим и светът може да го използва. Кликнете върху падащото меню Действия и изберете Внедряване на API.

След като щракнете върху него, ще видите екрана по-долу, тук изберете етапа на внедряване, тъй като сега нямате етап, изберете [Нов етап]. Дадох името като продукт, предоставете необходимите описания, те не са задължителни. Кликнете върху Разполагане.

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

Добре, екранът по-долу е приложението Postman, създайте нова HTTP заявка, уверете се, че сте избрали метода, по който е разгърнат вашият API, поставете URL адреса за извикване в лентата за заявки и се уверете, че сте добавили крайната точка, която е /api-gateway-tutorials можете вижте, че имаме отговор! Страхотно!

Как да създадете API ключ?

Добре, ние успешно създадохме API, но този API е достъпен за целия свят, това е основно отворен API. Можем да имаме множество случаи на употреба, при които трябва да ги запазим частни за нашата организация, но също така трябва да ги споделим, ако е необходимо. Другите платформи също може да се нуждаят от вашия API.

Ако предоставяте API като услуга, ще трябва да създадете API ключовете за вашите клиенти. Можете да създадете свои собствени планове като Безплатен, Основен, Премиум и т.н. Клиентите ще имат различни видове предимства пред избраните от тях планове, как можем да направим това?

Добре! Това е доста просто!

Всичко, което трябва да направите, е да изберете API Keys от лявата навигационна лента, ще видите екрана по-долу. Кликнете върху Действияи изберете Създаване на API ключ,Дайте име на своя API ключ, можете да изберете Автоматично генериране, дайте описанието и Запазете .

След като щракнете върху Запазване, ще видите екрана по-долу. Тук трябва да добавите план за използване, забележете също, че можете да видите API ключа тук, трябва да щракнете върху Покажи.

Как да създадете план за използване?

Много е лесно, всичко, което трябва да направите, е да изберете планове за използване от лявата навигационна лента и да щракнете върху Създаване. Можете да дадете име на вашия план, най-важното нещо, което трябва да забележите тук е, че трябва да активираме Throttling и да му дадем лимит, можете да дадете нисък лимит за безплатни клиенти и висок лимит за първокласни клиенти, по подобен начин задайте ограничението за Burst, което означава колко едновременни заявки искате да обработва вашият API.

Също така посочете квотата, да кажем, че моят клиент може да изпрати милион заявки до моя API и след като бъде завършен, клиентът трябва да поднови плана чрез плащане!

Щракнете върху Напред и ще се покаже екранът по-долу, където трябва да свържете своя API с плана, както и да посочите етапа. Тук името ми на API е Api-gateway, избрах го. След като приключите, щракнете върху следващия.

Сега ще ви бъде показан този екран по-долу, където трябва да добавите вашия API ключ към определен план, сега това е начинът, по който се справяте с потребителите, предоставяте им ключове, които определят техния план!

Добре! Това е основната настройка, от която се нуждаехме, всичко, което трябва да направим сега, е да активираме този ключ към нашия API и сме готови! Изберете API в лявата навигационна лента и щракнете върху метода. Ще видите показания екран Image 2.7, където можете да видите 4 плочки. Щракнете върху Заявка за метод и ще видите екрана по-долу, тук в опцията Изисква се API ключ, изберете падащото меню и изберете true. Запазете го

Това е! вече завършихме цялата настройка. Не забравяйте да внедрите! Щракнете върху падащото меню Действияи го внедрите.

Сега, ако изпълните отново заявката за пощальон, ще видите, че API е върнал Забранено! Вече сме защитили нашия API.

ЗАБЕЛЕЖКА: Дори след внедряването може да отнеме известно време, докато промените се отразят и може да получите нормален резултат. След минута ще започне да работи

Сега всичко, което трябва да направим, е да копираме ключа от конзолата и да го предоставим в заглавките на Postman. въведете x-api-key като име на параметъра и предоставете стойността, която сте получили. Кликнете върху запазване и го стартирайте!

Заключение

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

Казвам се Мохамед Абутахир, можете да се свържете с мен в LinkedIn или да ми изпратите имейл на [email protected]. Можете също да се свържете с мен в Twitter @_tahir_official

Благодаря ти! Приятен ден.

Повече съдържание в PlainEnglish.io. Регистрирайте се за нашия безплатен седмичен бюлетин. Следвайте ни в Twitter, LinkedIn, YouTube и Discord.