Архитектурата на API, обяснена за 5 минути или по-малко

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

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

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

Съдържание

Какво представляват API шлюзовете?

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

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

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

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

  Дали Splashtop е жизнеспособна алтернатива за отдалечен работен плот на Microsoft?

Градивни блокове на API архитектура

Има няколко градивни елемента на API архитектура, някои от които са изброени тук:

#1. API интерфейс

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

Например в RESTful API имате HTTP методи като GET, PUT, POST, DELETE и т.н., за взаимодействие с ресурси.

#2. Контролери на маршрути

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

Освен това контролерите могат също така да извършват валидиране на заявка, обработка на отговор, удостоверяване и т.н.

#3. Модели за достъп до данни

Всеки ресурс в база данни има определен тип структура или форма и е по-добре да дефинирате тази структура предварително за целите на валидирането. Известен е също като схема. Полезният товар, идващ от клиента, може да бъде валидиран спрямо схемата и след това добавен към базата данни.

Той предотвратява влизането на невалидни или подправени данни в базата данни.

Компоненти на API архитектура

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

Често използвани API дизайн архитектури

REST – Прехвърляне на представително състояние

REST е API архитектурен стил, който използва HTTP протокола и позволява комуникация без състояние между клиента и сървъра.

В REST ресурсите се идентифицират чрез URL адреси, които имат специфични крайни точки за всеки ресурс. REST разчита на HTTP методи като GET, PUT, POST и т.н., за да променя и създава ресурси. API, които внедряват REST архитектура, са известни като RESTful API.

SOAP – Прост протокол за достъп до обекти

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

  Как да проверите каква графична карта (GPU) има във вашия компютър

Основната разлика между SOAP и REST е, че REST е архитектурен дизайн, разчитащ на HTTP, но самият SOAP е протокол, който може да използва различни основни протоколи като HTTP, SMTP и т.н. Форматът на данните за отговор в SOAP е XML.

gRPC – Извикване на отдалечена процедура на Google

Remote Procedure Call (RPC) е техника, при която функция на отдалечен сървър се извиква от клиент, сякаш е извикана локално. gRPC е рамка с отворен код, разработена от Google. Той използва прото-буфери (протоколни буфери), което е езиково агностичен начин за писане и кодиране на структурирани данни.

Данните в прото-буферите се компилират от gRPC компилатор, което ги прави оперативно съвместими. Например, ако кодът на клиента е написан на Java, а кодът на сървъра на Go, тогава данните, посочени в протобуферите, са съвместими и с двата езика.

GraphQL

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

Трябва да дефинирате строго типизирана схема за конкретна заявка и функция за преобразуване, която ще се изпълни за тази заявка. За да модифицирате ресурси, има заявка за мутация, която трябва да посочите в GraphQL.

Внедряване на API архитектура – ​​най-добри практики

Без значение колко добре проектирате вашата API архитектура, ако тя се провали в производството, няма полза от нея. Тя трябва да се доставя според сценарии от реалния свят. Ето някои ключови практики, за да направите API архитектурата готова за производство:

✅ Използвайте API шлюз

API шлюзът подпомага ефективното маршрутизиране на API заявки. API шлюзът също може да управлява сигурността и валидирането.

✅ Извършване на API тестване

Преди да стартирате, уверете се, че вашият API е преминал цялостно тестване за функционалност, интеграция и производителност. Рамките за автоматизирано тестване могат да помогнат за рационализирането на тази процедура.

✅ Фокус върху скалируемостта

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

✅ Изберете хостинг разумно

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

  Как да видите Центъра за известия на iPhone и iPad

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

Как да изберем подходящата API архитектура?

Изборът на API архитектура зависи от следните съображения:

  • Бизнес изисквания: Анализирайте бизнес целите, които трябва да бъдат изпълнени с API и разберете потока на приложението.
  • Случаи на употреба: Задаването на въпроса защо ви е необходим API на първо място ще ви помогне много. Измислянето на различни случаи на употреба ще ви помогне да проектирате по-добре или да изберете API архитектура.
  • Мащабируемост: Отново, разбирането на бизнес изискванията и случаите на използване ще ви помогне да проектирате мащабируема API архитектура, която също е производителна.
  • Опит за разработчици: Уверете се, че API архитектурата е лесна за разбиране, така че новите, включени разработчици да могат лесно да я разберат без никакви проблеми.
  • Сигурност: Вероятно най-важният аспект на API архитектурата е сигурността. Уверете се, че вашата API архитектура е достатъчно сигурна и съвместима със законите за поверителност.

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

Ресурси за обучение

#1. Овладяване на API архитектура: Проектирайте, управлявайте и развивайте системи, базирани на API

Тази книга ще ви помогне да научите основите на API и да изследвате практически начини за проектиране, изграждане и тестване на API.

Той също така ви учи как да работите, конфигурирате и внедрявате вашата API система. Тази книга обхваща всичко – от API шлюзове, сервизна мрежа, сигурност, TLS и OAuth2 до развиващи се съществуващи системи.

#2. Софтуерна архитектура: REST API Design – Пълното ръководство

Ако се интересувате да научите за RESTful API и как са проектирани, този курс по Софтуерна архитектура е за вас.

Той обхваща удостоверяване, оторизация, документиране на REST API и различни техники за изпълнение за допълнително оптимизиране на вашия API дизайн. Страхотното в него е, че обхваща основите на HTTP и инструмента за тестване на API на Postman.

#3. Дизайн, разработка и управление на REST API

Уроци за различни платформи за управление на API, като Swagger, Apigee и Mulesoft, са ключовият акцент в този курс. Този курс е за тези, които искат да проучат приложенията на REST API и се интересуват от тяхното проектиране.

#4. Проектиране на RESTful API: Научете се да проектирате API от нулата

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

Заключителни думи

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

След това започнете своята кариера в софтуерното тестване с тези курсове и ресурси.