REST (engl. Representational state transfer) on Roy Fieldingin vuonna 2000 väitöskirjassaan nimeltä Architectural Styles and the Design of Network-based Software esittelemä arkkitehtuurityyli ohjelmointirajapintojen toteuttamiseen[1]. RESTful-arkkitehtuuri ei ota kantaa käytettävään protokollaan[2]. Yleensä RESTful-arkkitehtuuriin perustuvia ohjelmointirajapintoja toteutetaan joko HTTP tai HTTPS-protokollien avulla.

REST-ohjelmointirajapintojen avulla voidaan lähettää HTTP- tai HTTPS-pyyntöjä palvelimille, jotka palauttavat esimerkiksi JSON- tai XML-muotoisia vastauksia. Tällä tavoin dataa voidaan siirtää helposti palvelimelta toiselle.[3]

RESTful-arkkitehtuurityyli

muokkaa

Taulukko 1. RESTful-arkkitehtuurityylin rajoitteista ja pakollista perusperiaatteista.

Englannin kielellä Suomen kielellä Kuvaus
1. Client-server Asiakas-palvelin -malli Arkkitehtuurissa on kaksi selkeää roolia: asiakas ja palvelin.Näiden tehtävät on eroteltu selkeästi.
2. Stateless Tilattomuus Palvelin ei tallenna mitään tilatietoja, vaan kaikki niihin liittyvä tieto on aina mukana jokaisessa asiakkaan tekemässä kyselyssä.
3. Cache Välimuistin hyödyntäminen Kyselyihin merkitään, voiko kyselyn tallentaa asiakkaan tai palvelimen välimuistiin.

Välimuistin hyödyntäminen lisää suorituskykyä.

4. Uniform interface Yhdenmukainen

ohjelmointirajapinta

4a. Jokaisella resurssilla on oma URL-osoite

4b. Resursseja käsitellään niiden ilmentymien kautta (esimerkiksi JSON ja XML)

4c. Kysely sisältää kaiken tarvittavan tiedon sen käsittelemiseen.

4d. Vastaus sisältää hyperlinkkejä muihin resurssiin liittyviin tietoihin tai palveluihin (Hypermedia as the Engine of Application State, HATEOS)

5. Layered system Kerrostettu järjestelmä Järjestelmä voi rakentua kerroksittain ja välityspalvelimia voi käyttää.

Tärkeää on ymmärtää, että RESTful-periaatteita sovelletaan. Käytännössä juuri mikään ohjelmointirajapinta ei täytä vaatimusta 4d (HATEOS). Silloin ohjelmointirajapintaa kutsutaan RESTin kaltaiseksi ohjelmointirajapinnaksi.

Tavoitteet

muokkaa

REST-arkkitehtuurin on tarkoitus parantaa rajapintojen

  • suorituskykyä
  • skaalautuvuutta
  • yksinkertaisuutta
  • muunneltavuutta
  • siirrettävyyttä
  • luotettavuutta.

Lähteet

muokkaa
  1. Fielding Dissertation: CHAPTER 5: Representational State Transfer (REST) www.ics.uci.edu. Viitattu 13.3.2022.
  2. REST APIs must be hypertext-driven » Untangled roy.gbiv.com. Viitattu 13.3.2022.
  3. What is a REST API? www.redhat.com. Viitattu 11.10.2021. (englanniksi)

Aiheesta muualla

muokkaa
  • Sakari Mursu: REST-tietokantarajapinta mobiilisovellukselle ja web-sivustolle: opinnäytetyö. Oulu. Määritä julkaisija! Teoksen verkkoversio (viitattu 23.2.2017). (suomeksi)
  • Mikko Jussilainen: REST-pohjaisen web servicen kehittäminen: Case oldtimerTimer: opinnäytetyö. Määritä julkaisija! Teoksen verkkoversio (viitattu 23.2.2017). (suomeksi)
  NODES