Selgitame lihtsalt: mis on API ja miks see on vajalik?

Oled sa kunagi mõelnud, kuidas on võimalik, et lennupiletite võrdlusportaal suudab mõne sekundi jooksul kuvada sulle kümnete erinevate lennufirmade hinnad ja kellaajad? Või kuidas Uberi või Bolti rakendus teab täpselt, kus asub auto ja kuidas kuvada teekonda Google’i kaardil, ilma et neil endil oleks oma satelliite orbiidil? Me kasutame neid mugavusi iga päev, pidades neid iseenesestmõistetavaks, kuid tegelikult toimub taustal keerukas andmevahetus erinevate süsteemide vahel. Selle nähtamatu, kuid kriitilise tähtsusega suhtluse taga on tehnoloogia, mida nimetatakse API-ks. See on tänapäeva digitaalse maailma selgroog, mis hoiab koos kõike alates sotsiaalmeediast kuni pangatehinguteni, kuid tavakasutaja jaoks jääb see sageli märkamatuks.

Et mõista digitaalset maailma, milles me elame, ei pea olema programmeerija, kuid põhiteadmised sellest, kuidas andmed liiguvad, tulevad kasuks igale ettevõtjale, turundajale või lihtsalt uudishimulikule inimesele. API ei ole lihtsalt tehniline termin; see on ärimudel ja innovatsiooni mootor. Selles artiklis võtame selle keerulise kontseptsiooni “puust ja punaseks” lahti, selgitame selle toimimist lihtsate eluliste näidete varal ja vaatame, miks ilma selleta kukuks tänane internet sisuliselt kokku.

Mis on API ja mida see lühend tähendab?

Lühend API tuleneb ingliskeelsest terminist Application Programming Interface, mis eesti keeles tõlgituna tähendab rakendusliidest. Kuigi see termin võib kõlada hirmutavalt ja tehniliselt, on selle sisu tegelikult lihtne. Sisuliselt on API reeglite ja definitsioonide kogum, mis võimaldab ühel tarkvararakendusel suhelda teisega. See on nagu universaalne tõlk või vahemees, mis lubab kahel täiesti erineval süsteemil teineteist mõista ja andmeid vahetada.

Kujuta ette, et sul on kaks inimest, kellest üks räägib ainult jaapani keelt ja teine ainult eesti keelt. Nad ei saa omavahel otse suhelda. API on selles olukorras nagu professionaalne tõlk, kes seisab nende vahel. Eestlane esitab soovi (päringu), tõlk paneb selle jaapani keelde, jaapanlane vastab ning tõlk edastab vastuse eestlasele arusaadavas vormis. Tarkvaramaailmas on see “tõlk” koodijupp, mis transpordib päringuid ja vastuseid kliendi (näiteks sinu nutitelefon) ja serveri (kus andmed asuvad) vahel.

Klassikaline restorani analoogia

Kõige levinum ja ilmekam viis API selgitamiseks on restorani külastamine. See on ideaalne näide, sest seal on olemas kõik vajalikud osapooled: klient, köök ja teenindaja.

  • Klient (Sina): Sina esindad kasutajat või rakendust (näiteks mobiiliäpp), kes soovib saada teatud andmeid või teenust.
  • Köök (Server/Andmebaas): Köök on koht, kus valmistatakse toitu ehk kus asuvad andmed ja kus tehakse vajalikud arvutused. Sina kliendina ei tohi otse kööki minna – seal on keeruline, ohtlik ja sa ei pruugi teada, kus miski asub.
  • Menüü (Dokumentatsioon): Menüü on nimekiri asjadest, mida on võimalik tellida. API maailmas on see dokumentatsioon, mis ütleb arendajale, milliseid päringuid on võimalik serverile esitada.
  • Teenindaja (API): Siin tulebki mängu API. Teenindaja on see kriitiline lüli. Ta võtab sinult tellimuse (päringu), viib selle kööki (süsteemi) ja toob sulle hiljem valmis toidu (vastuse).

Ilma teenindajata (API-ta) ei saaks sa köögist toitu kätte, isegi kui kokad on valmis seda tegema. API hoolitseb selle eest, et sinu tellimus jõuaks õigesse kohta õigel kujul ja et vastus jõuaks sinuni tagasi, ilma et sa peaksid teadma, kuidas täpselt pliit töötab või kuidas kastet valmistatakse.

Miks meil on API-sid vaja?

Võiks küsida, miks ei võiks kõik süsteemid olla lihtsalt üks suur tervik? Miks on vaja eraldi liidestamist? Põhjuseid on mitu, alates turvalisusest kuni arenduse kiiruseni.

1. Innovatsiooni kiirus ja “ratta mitte leiutamine”

Kujuta ette, et soovid luua uue toidu kojuveo rakenduse. Kui API-sid ei eksisteeriks, peaksid sa ise ehitama kaardirakenduse (nagu Google Maps), looma oma pangasüsteemi maksete vastuvõtmiseks ja arendama sõnumineerimise süsteemi teavitusteks. See võtaks aastakümneid ja miljardeid eurosid. Tänu API-dele saad sa “rentida” Google Mapsi kaarti, kasutada Stripe’i või panga API-t makseteks ja Twilio API-t SMS-ide saatmiseks. Sa laod oma rakenduse kokku nagu LEGO klotsidest, keskendudes vaid oma unikaalsele väärtusele.

2. Andmete turvalisus

API-d toimivad väravavalvuritena. Kui sa kasutad oma telefonis pangaäppi, ei anta telefonile täielikku ligipääsu panga serveritele. API annab ligipääsu ainult sellele väikesele andmehulgale, mida sul on hetkel vaja (näiteks kontojääk), ja nõuab selleks autentimist. See tähendab, et ettevõtted saavad jagada oma andmeid või teenuseid kolmandate osapooltega ilma, et nad peaksid loovutama kontrolli oma põhisüsteemide üle.

3. Automatiseerimine ja efektiivsus

API-d võimaldavad arvutitel omavahel suhelda ilma inimese sekkumiseta. Näiteks kui sa ostad e-poest viimase paari saapaid, uuendab e-poe API automaatselt laoarvestuse tarkvara andmebaasi, et keegi teine ei saaks samal ajal sama toodet osta. See sünkroniseerimine toimub millisekunditega.

API-d sinu igapäevaelus: reaalsed näited

Ilmselt kasutad sa API-sid kümneid, kui mitte sadu kordi päevas, isegi seda teadmata. Toome mõned konkreetsed näited, et pilti veelgi selgemaks muuta.

Ilmateade sinu telefonis

Sinu telefonitootja (Apple, Samsung jt) ei oma ilmselt ühtegi meteoroloogiajaama. Kui sa vaatad telefoni ekraanilt, et väljas on 15 kraadi sooja, on sinu telefon saatnud API päringu mõnele ilmateenistusele (nagu The Weather Channel). Ilmateenistus saadab vastuse ja telefon kuvab selle sulle ilusa graafikana.

Sisselogimine Facebooki või Google’i kaudu

Paljud veebilehed pakuvad võimalust “Logi sisse Facebookiga”. Selle asemel, et luua uus kasutajakonto ja parool, vajutad sa ühte nuppu. See veebileht kasutab Facebooki API-t, et küsida Facebookilt kinnitust: “Kas see inimene on see, kes ta väidab end olevat?”. Facebooki API vastab “Jah” ja annab kaasa sinu profiilipildi ja nime, säästes sind tülika registreerimisprotsessi vaevast.

Reisiportaalid ja hotellibroneeringud

Kui sa otsid Skyscannerist või Booking.com-ist lende ja hotelle, ei ole neil portaalidel endil kõiki neid andmeid reaalajas. Hetkel, kui vajutad “Otsi”, saadab portaali API sadu päringuid laiali erinevate lennufirmade ja hotellide andmebaasidesse. Seejärel kogub ta vastused kokku ja järjestab need sulle hinna järgi. See on agregaator-tüüpi API kasutus.

Erinevad API tüübid

Mitte kõik API-d ei ole avalikud ja kõigile kättesaadavad. Neid saab liigitada ligipääsuõiguste alusel:

  1. Avalikud API-d (Open APIs): Need on kättesaadavad kõigile arendajatele, sageli tasuta või väikese tasu eest. Näiteks Google Maps API või NASA avalikud andmebaasid. Nende eesmärk on levitada teenust võimalikult laialdaselt.
  2. Partner API-d: Need ei ole avalikud, vaid mõeldud kasutamiseks kindlatele äripartneritele. Näiteks võib transpordifirma anda e-poele ligipääsu oma API-le, et e-pood saaks kliendile näidata paki asukohta. Ligipääsuks on vaja spetsiaalset luba ja lepingut.
  3. Privaatsed ehk sisemised API-d: Neid kasutatakse ainult ettevõtte sees. Näiteks panga mobiiliäpp suhtleb panga serveriga läbi privaatse API. See aitab ettevõtetel omaenda süsteeme paremini hallata ja arendada, ilma et välised osapooled ligi pääseksid.

Kuidas API tehniliselt töötab?

Kuigi me lubasime hoida asja lihtsana, on kasulik teada paari tehnilist terminit, mis API-dega alati kaasas käivad. Kogu protsess taandub kahele põhimõistele: Päring (Request) ja Vastus (Response).

Kui süsteem saadab päringu, peab see olema vormistatud kindlate reeglite järgi – täpselt nii, nagu API dokumentatsioon ette näeb. Tavaliselt on päringul kaasas ka “API võti” (API Key), mis on nagu digitaalne ID-kaart või parool. See ütleb serverile, kes päringu esitab ja kas tal on selleks õigus.

Vastus tuleb enamasti formaadis, mida nimetatakse JSON (JavaScript Object Notation). See on tekstipõhine andmevorming, mida on nii inimestel lihtne lugeda kui ka masinatel lihtne töödelda. See näeb välja nagu nimekiri võtmetest ja väärtustest (näiteks: “temperatuur”: “15”, “linn”: “Tallinn”).

Korduma kippuvad küsimused (KKK)

Kas API kasutamine on tasuta?

See sõltub teenusepakkujast. Paljud avalikud API-d on teatud mahuni tasuta. Näiteks võid sa teha Google Mapsi API-ga 1000 päringut tasuta, kuid kui sinu rakendus muutub populaarseks ja teeb miljon päringut, pead hakkama maksma. Ärikriitilised API-d on enamasti tasulised.

Kas tavaline inimene saab API-t kasutada?

Jah, kuid see nõuab tavaliselt vähemalt algtasemel programmeerimisoskust või spetsiaalseid tööriistu (nagu Zapier või Make), mis võimaldavad ühendada erinevaid API-sid ilma koodi kirjutamata. Tavalise internetikasutuse käigus kasutad sa neid automaatselt taustal.

Mis juhtub, kui API lakkab töötamast?

Kui API “kukub maha” või teenusepakkuja muudab reegleid, lakkab töötamast ka see osa rakendusest, mis sellest sõltub. Näiteks kui ilmateenistuse server on maas, ei näita sinu telefon ilmateadet, kuigi telefon ise on töökorras. See on API-majanduse üks riske – sõltuvus kolmandatest osapooltest.

Mis on vahet API-l ja tavalisel veebilehel?

Veebileht on mõeldud inimestele lugemiseks ja vaatamiseks (graafiline liides). API on mõeldud arvutitele ja programmidele andmete vahetamiseks (koodipõhine liides). Veebileht on täis pilte ja disainielemente, API vastus on puhas toorandmestik.

API-de roll tuleviku tehnoloogias

Me liigume üha enam maailma poole, kus kõik seadmed on omavahel ühendatud – alates nutikatest külmkappidest kuni isesõitvate autodeni. Seda nähtust nimetatakse asjade internetiks (IoT – Internet of Things). API-d on justkui liim, mis hoiab seda ökosüsteemi koos. Kui sinu nutikell annab kodusele küttesüsteemile teada, et oled jooksult tagasi ja tuba tuleks soojaks kütta, toimub see läbi API-de.

Lisaks on API-d muutumas kriitiliseks tehisintellekti (AI) arengus. Tänased keelemudelid, nagu ChatGPT, on kättesaadavad just läbi API-de, võimaldades teistel ettevõtetel ehitada nutikaid lahendusi oma toodete sisse. Me ei näe enam eraldiseisvaid tarkvarasaari, vaid hiiglaslikku, omavahel ühendatud digitaalset võrgustikku, kus andmed voolavad vabalt ja kiiresti. Mõistes API olemust, mõistame me paremini ka seda, kuidas toimib kaasaegne majandus ja kuhu liigub tehnoloogiline progress. See on nähtamatu jõud, mis muudab meie elu lihtsamaks, ühe andmepaketi haaval.