Avoimet rajapinnat REST API

Rajapinnoista ja niiden avoimuudesta

Modernin sovelluksen elinehto on toimiva julkinen API. Ennen kuin katsotaan tarkemmin, mitä API meidän näkökulmasta tarkoittaa ja miten niistä saadaan parhaat hyödyt irti, käydään läpi vähän perusteita.

API (Application Programming Interface) tarkoittaa sovellusrajapintaa, jota kautta sovelluksen tiedot ja toiminnallisuus on saavutettavissa sekä mahdollistaa ohjelmointityön sovellukseen tai sen osaan, esimerkiksi standardikirjastoon liittyen. Nämä rajapinnat voivat olla hyvin matalalla tasolla ja liittyä järjestelmän sisäiseen toimintaan. Esimerkiksi käytettävän Open Source -kirjaston kutsuihin järjestelmän sisällä. Tässä kirjoituksessa katsotaan kuitenkin tarkemmin julkisia rajapintoja. Niitä, joiden kautta sovellus on laajennettavissa tai integroitavissa, sekä sovelluksen tieto laajasti hyödynnettävissä.

API-keskeinen arkkitehtuuri

Perinteisesti sovellusrajapinnat on nähty enimmäkseen järjestelmien sisäisinä tai lähinnä integrointiin liittyvinä. Modernit sovellukset toimivat kuitenkin enemmän palveluina, ja filosofiana on järjestelmän helppo laajentaminen ja sen sisältämän tiedon laaja hyödyntäminen. Modernit sovellukset käyttävät ja tarjoavat jopa useita sovellusrajapintoja. Esimerkiksi sosiaalisen median sovellusten, kuten Facebook ja LinkedIn, käyttö perustuu pitkälti rajapintoihin joiden ympärille on tehty erilaisia käyttöliittymiä (selain, mobiili jne.).

API-keskeisessä arkkitehtuurissa sovellukset keskustelevat näiden julkisten rajapintojen kautta. Yksittäisen sovelluksen ohjelmointikielellä tai sisäisellä rakenteella ja logiikalla ei ole merkitystä, kun rajapinnat on tehty yleisten käytäntöjen mukaan. API-keskeinen arkkitehtuuri helpottaa myös päätelaiteriippumattomien sovellusten rakentamista. Esimerkiksi eri mobiilikäyttöjärjestelmille tehdyt sovellukset voivat käyttää samaa yleistä rajapintaa.

 

Adeona_PIM_2017

RESTful API

Kun käytetään yleisiä käytäntöjä ja de facto-standardeja, on sovellusten liittäminen helppoa ja datan hyödyntäminen tulee mahdolliseksi erilaisissa sovelluksissa.

REST (Representational state transfer) on tilaa tallentamaton HTTP-protokollaan perustuva arkkitehtuurimalli sovellusrajapintojen tekemiseen. Tyypillisesti REST API tarjoaa tiedon JSON (JavaScript Object Notation)- tai XML-formaatissa.  Me käytämme REST-rajapinnassamme JSON-formaattia, joka on avoin, luettavaan tekstiin ja attribuutti-arvo-pareihin perustuva vallalla oleva formaatti.

Avoin API

Yksi API-keskeisen arkkitehtuurin perusajatuksia on, että rajapinnat on avoimesti saatavilla ja niihin löytyy avoimesti saatavilla oleva hyvä dokumentaatio. Hyväkin rajapinta jää käyttämättä, jos sitä on hankala käyttää tai dokumentaatio ei ole saatavilla. Parhaimmillaan koko järjestelmän tietomassa sekä logiikka on saavutettavissa rajapinnan kautta. Näin järjestelmän liittäminen, integrointi tai laajentaminen omilla liittyvillä sovelluksilla on joustavaa.

Avoin rajapinta ei tarkoita sitä, että kaikki järjestelmän tieto on kaikkien saatavilla. Rajapintakutsut todennetaan ja järjestelmä voi sitten rajata kullekin rajapintaa kutsuvalle ne tiedot, joihin oikeudet riittävät.

 

Lisätietoja:

https://en.wikipedia.org/wiki/Application_programming_interface

https://en.wikipedia.org/wiki/Representational_state_transfer