Čo je to API? Po anglicky prosím.

Predtým, ako som sa naučil vývoj softvéru, znelo API ako akési pivo.

Dnes tento výraz používam tak často, že som sa nedávno pokúsil objednať API v bare.

Odpoveď barmana bola hodiť prostriedok 404: zdroj sa nenašiel.

Stretávam veľa ľudí, pracujúcich v technike aj inde, ktorí majú dosť neurčitú alebo nesprávnu predstavu o tom, čo tento pomerne bežný výraz znamená.

Technicky API znamená Application Programming Interface . V určitom alebo väčšom okamihu väčšina veľkých spoločností vytvorila API pre svojich zákazníkov alebo na interné použitie.

Ako si však vysvetliť API v jednoduchej angličtine? A existuje širší význam ako ten, ktorý sa používa v oblasti rozvoja a podnikania? Najskôr sa stiahnime a pozrime sa, ako funguje samotný web.

WWW a vzdialené servery

Keď premýšľam o webe, predstavím si veľkú sieť pripojených serverov.

Každá stránka na internete je uložená niekde na vzdialenom serveri. Vzdialený server nie je koniec koncov taký mystický - je to len časť vzdialene umiestneného počítača, ktorý je optimalizovaný na spracovanie požiadaviek.

Aby sme to uviedli na pravú mieru, môžete na svojom notebooku roztočiť server, ktorý dokáže na webe obslúžiť celú webovú stránku ( miestny server je vlastne to, čo inžinieri používajú na vývoj webových stránok pred ich zverejnením).

Keď do prehliadača zadáte www.facebook.com, žiadosť sa odošle na vzdialený server Facebooku. Keď váš prehliadač dostane odpoveď, interpretuje kód a zobrazí stránku.

Prehliadač, tiež známy ako klient , je server Facebooku API. To znamená, že pri každej návšteve stránky na webe pracujete s rozhraním API vzdialeného servera.

API nie je to isté ako vzdialený server - je to skôr tá časť servera, ktorá prijíma požiadavky a odosiela odpovede .

API ako spôsob poskytovania služieb zákazníkom

Určite ste už počuli o tom, že spoločnosti balia API ako produkty. Napríklad Weather Underground predáva prístup k svojmu API s údajmi o počasí.

Príklad: Web vašej firmy má formulár, ktorý slúži na prihlasovanie klientov na schôdzky. Chcete dať svojim klientom možnosť automaticky vytvoriť udalosť kalendára Google s podrobnosťami o tomto stretnutí.

Použitie API: Ide o to, aby server vašej webovej stránky hovoril priamo so serverom Google so žiadosťou o vytvorenie udalosti s danými podrobnosťami. Váš server potom prijme odpoveď spoločnosti Google, spracuje ju a pošle späť príslušné informácie do prehľadávača, napríklad potvrdzujúcu správu používateľovi.

Prípadne môže váš prehliadač často poslať požiadavku na API priamo na server Google a obísť váš server.

Čím sa líši toto API služby Kalendár Google od API iného vzdialeného servera?

Z technického hľadiska je rozdielom formát žiadosti a odpovede.

Na vykreslenie celej webovej stránky váš prehliadač očakáva odpoveď v HTML, ktoré obsahuje prezentačný kód, zatiaľ čo volanie API služby Kalendár Google by iba vrátilo údaje - pravdepodobne vo formáte ako JSON .

Ak server vašej webovej stránky zadáva požiadavku API, potom je serverom vašej webovej stránky klient (podobne ako váš prehľadávač, ktorý je klientom, keď ho používate na navigáciu na webovú stránku).

Z pohľadu vašich používateľov im API umožňujú dokončiť akciu bez opustenia vášho webu.

Väčšina moderných webových stránok využíva aspoň niektoré API tretích strán.

Mnoho problémov už má riešenie od tretej strany, či už je to vo forme knižnice alebo služby. Používanie existujúceho riešenia je často jednoduchšie a spoľahlivejšie.

Nie je neobvyklé, že vývojové tímy rozdelia svoje aplikácie na viac serverov, ktoré spolu komunikujú prostredníctvom rozhraní API. Servery, ktoré vykonávajú pomocné funkcie pre hlavný aplikačný server, sa bežne označujú ako mikroslužby .

Ak to zhrnieme, keď spoločnosť ponúka svojim zákazníkom rozhranie API, znamená to len to, že vytvorili skupinu vyhradených adries URL, ktoré vracajú čisté dátové odpovede - čo znamená, že odpovede nebudú obsahovať taký druh prezentačnej réžie, aký by ste očakávali v grafické používateľské rozhranie ako webová stránka .

Môžete tieto požiadavky odoslať pomocou prehľadávača? Často áno. Pretože skutočný prenos HTTP prebieha v textovej podobe, váš prehliadač urobí všetko pre to, aby zobrazil odpoveď.

Napríklad môžete získať prístup k API GitHubu priamo z vášho prehliadača bez toho, aby ste potrebovali prístupový token. Tu je odpoveď JSON, ktorú získate, keď vo svojom prehliadači navštívite trasu API používateľa GitHubu (//api.github.com/users/petrgazarov):

{ "login": "petrgazarov", "id": 5581195, "avatar_url": "//avatars.githubusercontent.com/u/5581195?v=3", "gravatar_id": "", "url": "//api.github.com/users/petrgazarov", "html_url": "//github.com/petrgazarov", "followers_url": "//api.github.com/users/petrgazarov/followers", "following_url": "//api.github.com/users/petrgazarov/following{/other_user}", "gists_url": "//api.github.com/users/petrgazarov/gists{/gist_id}", "starred_url": "//api.github.com/users/petrgazarov/starred{/owner}{/repo}", "subscriptions_url": "//api.github.com/users/petrgazarov/subscriptions", "organizations_url": "//api.github.com/users/petrgazarov/orgs", "repos_url": "//api.github.com/users/petrgazarov/repos", "events_url": "//api.github.com/users/petrgazarov/events{/privacy}", "received_events_url": "//api.github.com/users/petrgazarov/received_events", "type": "User", "site_admin": false, "name": "Petr Gazarov", "company": "PolicyGenius", "blog": "//petrgazarov.com/", "location": "NYC", "email": "[email protected]", "hireable": null, "bio": null, "public_repos": 23, "public_gists": 0, "followers": 7, "following": 14, "created_at": "2013-10-01T00:33:23Z", "updated_at": "2016-08-02T05:44:01Z"}

Zdá sa, že prehliadač zobrazil odpoveď JSON v poriadku. Takáto odpoveď JSON je pripravená na použitie vo vašom kóde. Z tohto textu je ľahké extrahovať údaje. S údajmi potom môžete robiť, čo chcete.

A je pre „Aplikáciu“

Na záver uvedieme ešte niekoľko príkladov rozhraní API.

„Aplikácia“ môže odkazovať na veľa vecí. Tu sú niektoré z nich v kontexte API:

  1. Kus softvéru so zreteľnou funkciou.
  2. Celý server, celá aplikácia alebo iba malá časť aplikácie.

V zásade akýkoľvek softvér, ktorý je možné zreteľne oddeliť od jeho prostredia, môže byť „A“ v API a pravdepodobne bude mať aj nejaký druh API.

Povedzme, že vo svojom kóde používate knižnicu tretej strany. Po začlenení do kódu sa knižnica stane súčasťou vašej celkovej aplikácie. Knižnica by bola samostatným softvérom a pravdepodobne by mala rozhranie API, ktoré jej umožňuje komunikovať so zvyškom vášho kódu.

Tu je ďalší príklad: V Object Oriented Design je kód organizovaný do objektov. Vaša aplikácia môže mať definované stovky objektov, ktoré môžu navzájom interagovať.

Každý objekt má API - sadu verejných metód a vlastností, ktoré používa na interakciu s ostatnými objektmi vo vašej aplikácii.

Objekt môže mať tiež vnútornú logiku, ktorá je súkromná, to znamená, že jeskrytéz vonkajšieho rozsahu (a nie API).

Z toho, čo sme pokryli, dúfam, že si vezmete širší význam API, ako aj dnes bežnejšie použitie tohto pojmu.

Zaujímavé zdroje (veci, ktoré som vynechal, ale stále sú veľmi cool):

Skvelé video z youtube na DNS (Domain Name System)

Základy protokolu HTTP

Video Awesome Khan Academy o princípoch objektovo orientovaného dizajnu