ХДГ објашњава: Шта је АПИ?

На интернету препуном збуњујућих и непознатих акронима(confusing and unfamiliar acronyms) , лако се можете збунити. Један веб акроним који сте можда чули, али никада нисте били инспирисани да га погледате је „АПИ“.

Шта је АПИ(API) ? АПИ(API) је акроним за интерфејс за програмирање апликација( application programming interface) и назив је за скуп рутина и протокола који знатно олакшавају процес прављења софтверских апликација.

Једноставан начин да се АПИ(API) посматра као мапа пута која говори компонентама софтвера како да комуницирају. Без употребе АПИ-ја(API) , изворни код би могао изгледати као збркани, збуњујући неред.

Међутим, АПИ-ји(APIs) су сложени и захтевају више од кратког сумирања. У овом чланку, хајде да пређемо на то како функционишу АПИ-ји(APIs) и које веб локације и услуге их користе.

Шта је АПИ и како функционише?(What Is An API and How Does It Work?)

Сада када смо установили да је АПИ(API) скуп рутина које усмеравају софтвер у правом смеру, како тачно све ово функционише?

Најбољи начин да се објасни основна функционалност АПИ(API) -ја је да се пружи пример из стварног света. Услуге доставе хране(Food) , као што је ГрубХуб(GrubHub) , тренутно су невероватно популарне, па хајде да разговарамо о томе како би код који стоји иза мобилних апликација попут ових могао да функционише.

Када тражите ресторан или храну у једној од ових апликација, добијате релевантне резултате на основу ваших кључних речи и локације. Када изаберете резултат, биће вам представљене опције намирница, рокови испоруке и више опција специфичних за ресторан.

Да бисте заказали испоруку, мора се успоставити веза између веб локације за испоруку и базе података – веб локација је фронтенд, а база података позадински део. База података је оно што чува податке за све ове ресторане, њихову доступност по локацији, распоред рада, меније и још много тога.

АПИ(API) је веза између ове базе података и веб локације или апликације која представља своје податке. Важно је да постоји АПИ(API) за креирање ове везе, а не да се користе тврдо кодирани подаци, првенствено због популарности интеграција трећих страна. 

На пример, било би корисно за веб локацију када би агрегатори трећих страна били у могућности да наведу и организују све ресторане и артикле које има на располагању, зар не? Без АПИ-ја(API) , ово не би било могуће без коришћења неефикасних техника веб-стругања.

АПИ(API) је интерфејс одговоран за испоруку података из базе података у апликацију, било да се ради о веб локацији, мобилној апликацији или било чему другом. АПИ-ји(APIs) су постали стандардни начин приступа и комуницирања података апликација широм веба, а свака већа веб локација или услуга која зависе од повезивања трећих страна има велике користи од пружања једног.

Које врсте АПИ-ја постоје?(What Types Of APIs Are There?)

Постоји више различитих типова АПИ(API) протокола, али три најпопуларнија су СОАП(SOAP) ( протокол једноставног приступа објекту(Simple Object Access Protocol) ), РЕСТ(REST) ( пренос репрезентативног стања(Representational State Transfer) ) и РПЦ(RPC) ( позив удаљене процедуре(Remote Procedure Call) ).

СОАП АПИ-ји(SOAP APIs)

СОАП(SOAP) је први пут представљен касних 1990-их и омогућио је апликацијама да деле ресурсе на једноставан начин коришћењем мрежних веза. СОАП(SOAP) се ослања на стандардне протоколе, као што су ХТТП(HTTP) и СМТП(SMTP) , који омогућавају да се користи у практично сваком окружењу због популарности таквих протокола.

Његова главна снага је у томе што је широко коришћен и успостављен. Ако није покварен, немојте га поправљати.

РЕСТ АПИ-ји(REST APIs)

РЕСТ је увео Рои Фиелдинг(Roy Fielding) 2000. године . Његов непосредни циљ је био да делује као одговор на многа питања која су настала раширеним усвајањем СОАП(SOAP) -а .

Слично СОАП(SOAP) -у , РЕСТ(REST) се ослања на ХТТП(HTTP) за пренос информација између апликација. Међутим, једна велика разлика која га разликује од СОАП(SOAP) -а, који захтева да се подаци преносе путем КСМЛ(XML) формата података, јесте та што подржава ЈСОН(JSON) . ЈСОН(JSON) је формат података за који се многи слажу да је лакши за читање и писање. Поред тога, РЕСТ АПИ-ји(REST APIs) могу да кеширају податке, омогућавајући много боље перформансе.

РЕСТ сада чини више од 80% свих АПИ-ја(APIs) , према извештају компаније Цлоуд Елементс(Cloud Elements) из 2017 .

РПЦ АПИ-ји(RPC APIs)

РПЦ АПИ-ји(RPC APIs) долазе у много врста, али као што смо сазнали из РЕСТ АПИ-ја(REST APIs) , ЈСОН(JSON) је веома популаран формат података, тако да је ЈСОН-РПЦ(JSON-RPC) његов најпопуларнији.

ЈСОН-РПЦ(JSON-RPC) је протокол који је најприкладнији за минималисте и кориснике који се ослањају на једноставност свог АПИ-ја(API) . Много је ужи по обиму у поређењу са СОАП(SOAP) -ом и РЕСТ-ом(REST) , и веома је ограничен у својој флексибилности и скупу команди—али за неке програмере мање је више.

Постоје и други типови АПИ(API) -ја засновани на РПЦ-у , као што је гРПЦ, али ЈСОН-РПЦ(JSON-RPC) је најбољи ако вам је приоритет једноставност имплементације.

Ко користи АПИ-је?(Who Uses APIs?)

Програмери било које врсте, било фронтенд или бацкенд, треба да имају искуства у раду са АПИ-јима(APIs) . Што се тиче веб локација или веб услуга, практично сви главни играчи имају неку врсту доступног АПИ(API) -ја — најочигледнији је Виндовс(Windows) .

Пошто је Мицрософт Виндовс(Microsoft Windows) најпопуларнији оперативни систем на планети, сасвим је природно да ће програмерима апликација бити потребан скуп смерница за интеракцију са његовим корисничким интерфејсом. Без приступа Виндовс АПИ-ју(Windows API) , програмирање апликације која се у великој мери ослања на интеракцију са оперативним системом представљало би велику главобољу.

Постоје хиљаде АПИ-ја(APIs) , неки бесплатни, а неки плаћени. Ево само неколико примера вредних пажње:

АПИ-ји(APIs) су један од кључних конектора иза неких од највећих и најважнијих веб локација и апликација. Иако просечан корисник можда неће моћи да види предности које пружају АПИ-ји(APIs) , они су божји дар за програмере и веб услуге.



About the author

Ја сам веб програмер са преко 10 година искуства у раду са прегледачима Фирефок и Гоогле Доцс. Специјалиста сам за креирање једноставних, али моћних онлајн апликација, и развио сам веб-базирана решења за мала предузећа и велике организације. Моја база клијената укључује нека од највећих имена у пословању, укључујући ФедЕк, Цоца Цола и Маци'с. Моје вештине као програмера чине ме идеалним кандидатом за било који пројекат који треба да се заврши брзо и ефикасно – од развоја прилагођених веб локација до креирања робусних маркетиншких кампања путем е-поште.



Related posts