Rajapintaintegraatiot
Yhä useampi verkkosivu hakee osan sisällöstään jostain verkkosivun ulkopuolisesta lähteestä. Tällöin verkkosivun taustalla oleva ohjelma keskustelee toisen ohjelman kanssa käyttäen jälkimmäisen tarjoamaan ohjelmointirajapintaa, API:a.
Kirjoittaja
Jussi Tuoma
Full Stack Developer
Mikä rajapinta?
Ohjelmointirajapinta (engl. Application programming interface, API) on määritelmä, jonka mukaan verkkopalveluiden taustalla olevat ohjelmat vovati tehdä pyyntöjä ja vaihtaa tietoja eli keskustella keskenään. Jos näet verkkosivulla kuvia Instagramista, on sivusto tehnyt kutsun Instagram:in API:in ja vastaavasti rajapinta on palauttanut pyyntöä vastaavat kuvat. Kuka tahansa ei kutsua voi tehdä, vaan kutsu sisältää jonkin tiedon, millä kutsuja tunnistautuu rajapinnalle, ja saa juuri oikeat tiedot vastaukseksi.
Mihin rajapintoja käytetään?
Rajapintojen käyttötarkoituksia on monenlaisia. Kuvat Facebook:sta tai Instagram:sta tai esimerkiksi säätiedot ilmatieteen laitoksen avoimen datan rajapinnasta ovat esimerkkejä yksisuuntaisista kutsuista, joissa verkkosivu pyytää tietoja rajapinnasta, mutta ei lähetä mitään takaisin. Verkkosivun käyttäjä ei välttämättä tule ajatelleeksi että sivulle on haettu muualta muuttuvaa sisältöä vaan ne ovat luonnollinen osa sivun sisältöä.
Kun rakennetaan palvelua, jossa käyttäjät täytyy tunnistaa vahvasti, voidaan käyttää esimerkiksi Visma Sign rajapintaa. Tässä tapauksessa Visman rajapintaa pyydetään vahvistamaan käyttäjän henkilöllisyys. Samalla verkkosivun käyttäjä ohjataan hetkellisesti ulos alkuperäiseltä verkkosivulta useimmille tuttuun pankkien tarjoamaan TUPAS-palveluun, jossa käyttäjä verkkopankkitunnuksillaan vahvistaa henkilöllisyytensä. Kun käyttäjä on tunnistautunut palaa hän takaisin alkuperäiselle sivustolle ja samalla sivusto kysyy Visman rajapinnalta, onnistuiko tunnistautuminen. Tässä esimerkissä käyttäjäkin huomaa käyttävänsä kahta eri palvelua, mutta palveluiden välillä tiedot liikkuvat ilman että käyttäjän täytyy olla aktiivinen.
Verkkokaupan ja kirjanpito-ohjelman välinen yhteydenpito on useasti vastaantuleva haaste. Jos kirjanpito-ohjelma on asennettuna kaupan sisäverkkoon, voi siihen integroituminen olla haastavampaa. Mutta vastaavasti kirjanpito-ohjelmat, jotka ovat verkossa, tarjoavat lähes aina kattavan API:n. Esimerkiksi Briox kirjanpito-ohjelmasta on mahdollista hakea verkkokauppaan muun muassa tuotteiden hintoja ja saldoja. Vastaavasti verkkokaupassa tapahtuvasta myyntitapahtumasta lähetetään samaa API:a käyttäen tieto kirjanpitoon.
Rajapintojen käyttöönoton haastavuus vaihtelee huomattavasti. Kun toiminto johon rajapintaa käytetään on yksinkertainen ja rajapinta hyvin dokumentoitu, voi käyttöönotto olla hyvinkin nopeaa.
Keskusteluyhteys on mahdollista tehdä myös käyttäen tiedostoja tiedonsiirtoon. Tällöin riippuu ohjelmasta, kuinka saumattomaksi tiedonsiirto saadaan tehtyä. Tekso-kassajärjestelmän kanssa voidaan luoda keskusteluyhteys xml-tiedostoja käyttäen. Verkkokauppa luo xml-tiedostoja myyntitapahtumista ja Tekso tuotetiedoista tapahtuvista muutoksista. Näitä tiedostoja siirretään säännöllisesti ohjelmistojen välillä ilman että käyttäjän täytyy osallistua siirtoon. Passeli kirjanpito-ohjelman kanssa käyttäjä voi tuoda myyntitilauksia verkkokaupan luomina xml-tiedostoina. Passeli ei osaa tehdä tätä automaattisesti vaan käyttäjän on tuotettava tiedostot itse.
Kuinka vaikeaa rajapintojen käyttöönotto on?
Rajapintojen käyttöönoton haastavuus vaihtelee huomattavasti. Kun toiminto johon rajapintaa käytetään on yksinkertainen ja rajapinta hyvin dokumentoitu, voi käyttöönotto olla hyvinkin nopeaa. Sms-viestin lähettäminen verkkopalvelusta on esimerkki toiminnosta, jonka saa toteutettua muutamassa tunnissa.
Vastaavasti rajapinnat, joissa liikutetaan ihmisten henkilötietoja, vaativat vahvat suojaukset ja ensimmäisen onnistuneen viestin lähettämiseen voi kulua päiviä ja tämän jälkeen vaadittava aika riippuu rakennettavan toiminnallisuuden monimutkaisuudesta. Jos rajapinta on paljon käytetty, voi rajapintaa tarjoavalta taholta löytyä esimerkkitoteutuksia, jotka myös nopeuttavat kehitystyötä huomattavasti.
Yllä mainitut esimerkit ovat vain osa integraatioista, jotka olemme Höyryssä toteuttaneet. Ota yhteyttä ja kerro mitkä palvelut sinä haluat keskustelemaan keskenään.