API eli Application Programming Interface ja siihen liittyvät käsitteet menevät helposti sekaisin – eikä ihmekään, sillä lyhenteitä ja sananparsia riittää. API:en käyttö ja hallinta ovat luonteva osa modernia ja ketterää palveluiden kehitystä, mutta miten päin ne SOAPit ja RESTit nyt menivätkään? Lue pieni sanasto APIen hallinnasta ja ota termit haltuun.
API (Application Programming Interface)
API on ohjelmointirajapinta, jota käyttäen sovellukset kommunikoivat keskenään. Yleistäen API:lla tarkoitetaan mitä tahansa ohjelmointirajapintaa. API voi olla sovelluksen sisäiseen käyttöön tarkoitettu rajapinta tai muille sovelluksille tarkoitettu ulkoinen rajapinta. Ulkoiset rajapinnat julkaistaan käyttämällä SOAP- tai REST-tyylisiä web-palveluita.
SOAP (Simple Object Access Protocol)
SOAP on SOA:n (Service Oriented Architecture) eli palvelukeskeisen arkkitehtuurin yleisimmin käytetty protokolla. Se käyttää XML:ää tiedon esitysmuotona. Tiedonsiirtoprotokollana on yleensä http, mutta myös muut protokollat, kuten SMTP (Simple Mail Transfer Protocol) tai JMS (Java Message Service) ovat mahdollisia. SOAP:ssa tiedon esitysmuoto on sidottu (XML), mutta ei siirtotapa.
REST (Representational State Transfer)
REST on API:en julkaisun de facto arkkitehtuurityyli. Se hyödyntää http-protokollaa ja sen standardimetodeja. REST on saavuttanut kasvavaa suosiota, koska se on kevyempi ja helppokäyttöisempi kuin SOAP, erityisesti käytettäessä tiedon esitysmuotona JSON:a (JavaScript Object Notation). REST voi käyttää myös muita esitysmuotoja kuten XML tai HTML. REST:ssä tiedon siirtotapa on sidottu (http), mutta ei esitysmuoto. Viime vuosina paljon suosiota saavuttanut mikropalveluarkkitehtuuri käyttää JSON/REST:iä.
Erityisesti mobiilisovelluksissa JSON/REST soveltuu paremmin kommunikointiin taustajärjestelmien kanssa kuin XML/SOAP helpomman toteutuksen ja ylläpidettävyyden sekä paremman suorituskyvyn vuoksi. JSON/REST onkin mobiilisovellusten toiminnan selkäranka.
JSON (JavaScript Object Notation)
JSON on tiedon esitysmuoto, jota käytetään erityisesti REST-tyylisessä tiedonvälityksessä. Se käyttää nimi/arvo pareja sekä taulukoita tiedon esittämiseen.
API:en hallinta
API:en julkaisussa olennaisinta ei ole teknologia ja tuotteet vaan API:en hallinta eli käytännöt ja standardit. API:en hallinnan keskeinen tavoite on API:en käytön tehostaminen hallitusti ja turvallisesti. API:en hallintajärjestelmät ovat tätä tavoitetta tukevia teknologiaratkaisuja.
Hallintajärjestelmät voidaan jakaa neljään komponenttiin:
- API gateway
- API manager
- API portaali
- API analytiikka
API gateway
API gateway on komponentti, jossa tapahtuu API:en ajoaikainen suoritus. API gatewayn kautta API:t voidaan julkaista tehokkaasti, turvallisesti ja hallitusti. API gatewayn toiminnallisuuksiin kuuluu mm. orkesterointi, reititys sekä sanomien rakenteen ja sisällön muokkaus. API gatewayn tietoturvaan liittyviin toiminnallisuuksiin kuuluvat esimerkiksi API:en suojaus luvattomalta käytöltä, tietoturvauhkien tunnistaminen ja torjunta sekä tietojen salaus ja allekirjoitus. API gateway tukee myös API:en käyttöön liittyviä ansaintamalleja (monetization).
API manager
API managerin avulla hallitaan API:en julkaisu, versiointi, poistaminen sekä tietoturva, käyttäjät ja käyttöoikeudet. API managerin tai erillisen API manageriin liittyvän työkalun avulla toteutetaan API:en käyttämät käsittelysäännöt (API policy) liittyen mm. tietoturvaan, sanomien muunnoksiin ja reititykseen. Lisäksi API manager voi sisältää monitorointiin ja analytiikkaan liittyviä toiminnallisuuksia.
API portaali
API portaali on itsepalveluportaali, jossa julkaistut API:t ovat sovelluskehittäjien selattavissa ja testattavissa käyttöoikeuksien puitteissa. Portaalista löytyy API:en dokumentaatio, ja portaalissa sovelluskehittäjä voi koostaa haluamansa API:t oman sovelluksensa käyttöön. Portaali voi sisältää myös blogeja ja keskustelufoorumeita. Portaalin keskeinen hyöty on se, että sovelluskehittäjät voivat itsenäisesti hyödyntää sovelluksessaan yrityksen julkaisemia rajapintoja.
API analytiikka
Analytiikkatietoa voidaan näyttää sekä API managerissa että portaalissa, mutta analytiikkaa varten voi olla myös erillinen komponentti. Analytiikan avulla API:en käytöstä saadaan tietoa, joka auttaa niin liiketoiminnan, uusien API:en kuin kapasiteetinkin suunnittelussa.
Kirjoittaja työskentelee CGI:llä teknisenä arkkitehtina. Pekan tavoitat osoitteesta pekka.korhonen@cgi.com.