Liigu edasi põhisisu juurde
would you like APItizer

Mis on API?

Tiina Nuum

 

Kas teadsid, et märkimisväärne osa sinu digitaalsest kogemusest baseerub API-del? Tänu API-dele saab väga hõlpsalt võrrelda, osta, salvestada, valida, postitada ja erinevatesse keskkondadesse sisse logida. Aga ka telefoniäpist vaadata, millal reaalselt järgmine buss, tramm või troll tuleb. API-del on suur roll nii operatsioonisüsteemides, desktopis, mobiilis, asjade internetis, IT infrastruktuuris kui ka tarkvara arenduse arhitektuuris. Põhimõtteliselt kõikjal! Ja seepärast on viimane aeg neist juttu teha.

 

API termin iseenesest pole midagi uut ja seda tunneb juba IT valdkonna vanaisade põlvkond. API-d on tarkvara arenduse nurgakivi ja tänapäevases veebis on saanud termin oluliseks ka paljudele teistele peale arendajate.

 

Tavaliselt ju vananevad tehnoloogiad kiiresti, miks on siis see ca 50 aastat vana kontsept nii kuum teema? Sest API on midagi palju enamat kui süsteemide omavahelise integreerimise tehnoloogia.

 

Definitsioon

 

Akronüümi API taga on Application programming interface, eesti keeles kas rakendusliides, programmiliides või rakendustarkvara liides. Nimetame teda siin lihtsalt API-ks.

API on üht tarkvara teisega ühendav liides, mis võimaldab kahel masinal, arvutil, seadmel, rakendusel  - antud kontekstis on ükskõik, millist sõna me kasutame - andmeid vahetada või käske edastada.

 

API-d on igal pool. M2M ehk masin-masin API-d on tehnoloogiad, mis võimaldavad seadmetel omavahel taustal suhelda ja käske edastada. Samuti suhtlevad kliendipoolsed (client-side) kasutajaliidesed API-dega. Kui peale mingit kasutaja poolt tehtud toimingut on vaja suhelda serveriga, siis taustal saadab kliendipoolne tarkvara päringu API-sse ning edasised toimingud sõltuvad juba API vastusest.

 

Võtame näiteks sularahaautomaadi. Et oma ülesannet täita, peab ta suhtlema nii kasutaja kui ka pangaga. Kasutajaga suhtlemiseks on automaadil ekraanist, klahvidest ja sularaha avast koosnev kasutajaliides. Sisestan PINi, soovitud summa ja võtan raha vastu. Taustal suhtleb automaat läbi API pangaga. Kui kontol on piisavalt vahendeid, annab API loa sularaha väljastamiseks ning uuendab seejärel kontojäägi pangas.

 

API vahetu kasutaja on siin automaat, mitte inimene. Digimaailmas on samamoodi. API on liides, mida tarkvara kasutab, et pääseda ligi mistahes ressursile, mida tal vaja on: andmed, serveri tarkvara või mõni muu rakendus.

 

Hea liidese kriteeriumid

 

Kui me loome tarkvarale või veebilehele kasutajaliidest, siis me disainime selle inimesele. Me püüame selle luua võimalikult lihtsa, intuitiivse, nauditava. Aga kuidas teha nii, et selle süsteemi infot oleks sama lihtne tarvitada mõnel teisel tarkvaral? Tarkvaral ei ole silmi, intuitsiooni ega emotsioone ja seepärast ei vaja ta ka graafilist ja intuitiivset kasutajaliidest. Küll aga vajab nüüdisaegne tarkvara häid API-sid, mis aitavad andmeid või funktsionaalsusi võimalikult lihtsalt ja kiirelt kasutada.

Milline siis on hea API? Nüüdisaegsete API-de standarditest, kvaliteedist ja kasutatavusest räägime täpsemalt järgmistes postitustes.

 

Kas perfokaarte või telneti mäletad?

 

Graafilise kasutajaliidese ja arvutihiire kasutuselevõtt 1980ndatel muutsid maailma. Need olid arengud, mis andsid võimaluse kõigile inimestele arvutit mõista ja kasutada. Aga kuidas on API-d maailma muutnud?

 

API-d on muutnud IT infrastruktuuri

 

Varem kuulus suure ja võimsa ettevõtte juurde kindlasti ka raskekaaluline IT infrastruktuur. Enam mitte. IT arhitektuuri on tulnud juurde API-de kiht ja see eraldanud üksteisest kasutajad, rakendused ja serveripoolsed süsteemid. Tänu API-dele on võimalik süsteemile otse ligi pääseda ja võrreldes varasemate tehnoloogiatega on see oluliselt efektiivsem. Ka pilveteenuste puhul on API-del väga oluline roll ühendada erinevaid komponente ja vahetada turvaliselt infot erinevate osade vahel.

 

API-d on muutnud tarkvara arhitektuuri

 

Moodulite ehk osade kaupa ehitamine, selge tööjaotus, osade tükkide sisse ostmine muudelt tootjatelt on väga levinud näiteks autotööstuses ja sülearvutite tootmises. Ja ka nüüdisaegses tarkvaraarenduses, mille märksõnad on modulaarsus, teenuste põhine arhitektuur ja mikroteenused.

 

API-d teevad mikroteenused võimalikuks

 

Mida selgemalt on koodis eristatud erinevad moodulid, seda enam on põhjust rääkida ka API-liidestest nende vahel. Rangelt võttes on kogu tarkvaraarenduse maailm kui üks sisemine API. Täna kuuluvad API-d professionaalse tarkvaraarenduse hea tooni ja parimate praktikate juurde. Komponendid ja moodulid on ühelt poolt eraldi ja samal ajal üksteisega seotud.  Kogu süsteem jaotatakse võimalikult väikesteks iseseisvateks süsteemi osadeks (teenusteks või mikroteenusteks), mis omavahel just näiteks veebipõhiste API-de abil suhtlevad.

 

Miks see hea on?

 

1.   Modulaarne ülesehitus võimaldab projekti kiiremini ja paindlikumalt ellu viia, kuna ükski komponent ei sõltu teisest ja üks meeskond ei pea ootama teise järel, et oma osa valmis teha.

 

2.  Teenusepõhine arhitektuur annab võimaluse kasutada mooduleid teistes programmides, mis vähendab nii arenduseks kuluvat aega kui raha.

 

3.   Selline lähenemine vähendab üldist programmi keerukust. Nii on kood formuleeritud lihtsamalt mõistetavas vormis ja uutel meeskonnaliikmetel on hõlpsam sellega edasi töötada.

 

4.   Modulaarset API-dega varustatud koodi on lihtsam hooldada. API-ga on määratletud milliseid andmeid millises vormis sellest moodulist väljastatakse ja mida sinna sisse antakse. Vigasid on lihtsam leida ja ka API-d aitavad tuvastada, kas andmeid üle andes toimib vastav moodul ootuspäraselt või tekib viga. Nii aitavad API-d tagada kvaliteeti: enne, kui üle antud andmeid testitakse tsentraalselt, läbivad need eelkontrolli.

 

5.  Teenusepõhine arhitektuur võimaldab omavahel integreerida teenuseid sõltumata programmeerimiskeelest, platvormist või äriprotsessidest ning teenuseid omavahel kombineerides luua uut funktsionaalsust pakkuvaid teenuseid.

 

Kuidas on API-d veel maailma muutnud?

 

Loe ka meie teisi artikleid:

 

Veebipõhine API - nüüdisaegse digikogemuse hall kardinal

APId panevad veebiruumi orgaaniliselt kasvama