API:t ovat modernin integraatiostrategian ydin

API-rajapinnat ovat nyt integraatioiden keskiössä. Digian Tero Kivisaari käsittelee blogisarjassa API-hallintaa, REST API -rajapintoja ja API:en päälle rakentuvaa liiketoimintaa.

rest_api.jpg

Ensimmäisessä osassa lähdetään perusteista liikkeelle ja selvennetään, mitä REST ja API:t ovat. Seuraava osa rakentuu edellisen päälle ja syventyy API-hallintaan: milloin sille on tarvetta, mitä hyötyjä se voi tarjota ja mikä on API-hallinnan suhde SOA:han (service oriented architecture). Kolmas osa käsittelee muun muassa API-initiatiiveja ja API-taloutta, avointa dataa, sekä kehittäjäyhteisöjen hallintaa.

Lisäksi kannattaa huomioida Digian 13.10. järjestämä integraatioaiheinen webinaari.

Mihin REST-rajapintoja käytetään

Ennen kuin sukelletaan teknisiin yksityiskohtiin siitä, mitä REST API:t ovat, käydään läpi lyhyesti, mihin niitä käytetään. Joku viisas mies sanoi kerran, että REST on se näkymätön liima, joka pitää modernin webin ja mobiilisovellukset toiminnassa. Ei hassumpi määritelmä mielestäni. Toinen vertaus voisi olla, että kun puhutaan avoimesta datasta niin REST API:t ovat se konkreettinen infrastruktuuri, jonka avulla dataa voidaan hyödyntää ja siirtää paikasta toiseen.

Jos tarkastellaan asiaa sovellustasolla niin vähissä ovat esimerkiksi mobiilisovellukset, joista ei ole yhteyksiä mihinkään ja kaikki tapahtuu paikallisessa sovelluksessa puhelimessa. Jos ja kun yhteyksiä on, ne ovat poikkeuksetta toteutettu REST API -rajapintoja hyödyntäen. Sama pätee moderneihin web-sovelluksiin, joissa on kasvava määrä JavaScriptillä toteutettua selainpään logiikkaa joka janoaa palvelimilla majailevaa dataa.

Mitä REST API:t konkreettisesti ovat?

Käytännössä REST (Representational State Transfer) on Roy Fieldingin kehittelemä arkkitehtuurinen tyyli hajautettujen sovellusten väliseen kommunikointiin. Erityisesti sellaisten client-server-sovellusten, jotka kommunikoivat internetin yli hyödyntäen http(s)-protokollaa. Fieldingin nimi voi olla tuttu myös yhtenä alkuperäisen http-standardin luojista Tim Berners-Leen rinnalla. REST:illä onkin vahva yhteys http:hen, tai ehkäpä olisi parempi sanoa yksinkertaisesti, että REST rakentuu http:n päälle.

API puolestaan on lyhenne sanoista Application Programming Interface, joka käytännössä tarkoittaa sovellusrajapintaa. Viime vuosina API-termi on kuitenkin omittu enenevissä määrin viittaamaan nimenomaisesti REST-pohjaisiin rajapintoihin (esimerkiksi API-economystä puhuttaessa).

REST:in rakentuminen http-protokollan päälle tarkoittaa, että sillä on käytössään kenties kattavimmin ikinä testattu siirtoprotokolla, jonka päällä vähän karrikoituna koko internet pyörii. Tämän myötä kaikki ne ongelmat, jotka vuosien varrella on http:n osalta ratkaistu, on ratkaistu myös REST:in osalta. Esimerkkeihin voidaan lukea vaikkapa monipuoliset välimuistiominaisuudet, tilattomien palveluiden äärimmäiset skaalautumisominaisuudet, standardoidut vastauskoodit, kattava tuki eri käyttöjärjestelmillä, erilaisten sisältötyyppien tuki, sisällön pakkaus ja siirtotien suojaus sekä erilaiset tunnistautumismenetelmät.

Konkreettisesti REST:issä on kyse resursseista ja resurssien operoinnista http-metodien avulla. Resurssi on se /-kauttaviivalla erotettu osa URL:ia joka tulee vähän domain nimen jälkeen. Vaikkapa siis mielikuvituksellinen lista käyttäjistä http://api.example.com/users jossa /users on se varsinainen manipuloitava resurssi. Resursseja käsitellään http-protokollan tarjoamilla metodeilla, joista käytetyimmät ovat GET, POST, DELETE, UPDATE, PATCH.

Yksinkertaistettuna noita metodeja voisi verrata tietokannan CRUD (create, read, update, delete) komentoihin. Esimerkiksi pyyntö ”http GET http://api.example.com/users ” voisi palauttaa listan käyttäjistä. Vastaavasti lähettämällä http POST-komennolla käyttäjän tiedot vaikkapa XML tai JSON formaatissa samaiseen osoitteeseen voitaisiin luoda uusi käyttäjä. DELETE-metodilla voitaisiin poistaa käyttäjä yksilöimällä käyttäjän id-pyynnön osoitteessa ja niin edelleen. Resurssi ja sen perässä mahdollisesti olevat tarkenteet kertovat siis kohteen, jota käsitellään, ja käytetty http-metodi kertoo, mitä tuolle kohteelle tehdään.

API-teknologia nousee strategiseksi integraatio-menetelmäksi

REST API:t eivät ole uusi asia. Niitä on tehty jo yli 10 vuotta eikä loppua näy. Teknologia on käynyt läpi normaalin hypekäyrän ja pitänyt pintansa. On kuitenkin pari asiaa, jotka tekevät asiasta kiinnostavan ja ajankohtaisen. API-pohjaiset integraatiot ovat alkaneet nostaa profiiliaan ja muuttua useilla asiakkailla taktisesta sovellusintegraatiosta strategiseksi osaksi yrityksen integraatioarkkitehtuuria. On myös havahduttu siihen, että API:en ja niitä kuluttavien sovellusten määrän kasvaessa lähes räjähdysmäisesti on tarvetta saada näkyvyyttä, mitä API-rajapintoja organisaatio tarjoaa ja kuka niitä kuluttaa ja kykyä hallinnoida näitä rajapintoja tehokkaasti.

Muutos API:en taktisen integraation roolista strategiseksi liittyy usein siihen, että yrityksen integraatioarkkitehtuuritasolla nostetaan mikropalvelut keskeiseen rooliin (kuten esim Netflix on tehnyt) tai sitten avointen rajapintojen avulla haetaan uutta liiketoimintaa, josta Salesforce on tunnettu esimerkki.

Jotta strategisen roolin saavaa API-pohjaista integraatiota voidaan mitata, hallinnoida ja operoida tehokkaasti tarvitaan kattavaa näkyvyyttä siitä, mihin ja miten integraatiota käytetään. Myöskin pilvipalveluiden lisääntyvä käyttö ja tarve hallita API-liikennettä monimutkaisten pilvi-topologioiden välillä on kasvava haaste. Nämä ja monet muut aiemmin mainitut syyt saattavat puoltaa API-hallintatuotteen käyttöönottoa. API-hallinnasta kirjoitan lisää blogisarjan seuraavassa osassa. Sitä odotellessa suosittelen kuuntelemaan Digian webinaarin aiheesta Ketterä integraatio, jossa asiaa myöskin sivutaan.

Lisää aiheesta Ketterä integraatio -webinaarista. Voit ladata webinaarin alla olevasta kuvakkeesta: 

Kuuntele webinaari!

 

integraatio




Tero Kivisaari | Integraatioarkkitehti

Tero Kivisaari | Integraatioarkkitehti

Tero työskentelee integraatioarkkitehtina erilaisten integraatioiden ja järjestelmien parissa. Sydäntä lähellä ovat API-asiat, joista Terolla on myös pitkä kokemus. Arkkitehtuuri- ja suunnittelutyön lisäksi hän myös koodaa mielellään silloin kun siihen on aikaa ja mahdollisuus. Kotona aika vierähtää kahden pienen pojan kanssa. Muun vapaa-ajan Tero viettää kiipeillessä sekä erilaisten lautailulajien kuten surffauksen ja lumilautailun parissa.

Kirjoittajan kaikki blogitekstit

Tilaa blogikirjoitukset sähköpostiisi




Seuraa meitä somessa

LinkedIn Twitter Facebook YouTube