REST
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
muokkaaTaulukko 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
muokkaaREST-arkkitehtuurin on tarkoitus parantaa rajapintojen
- suorituskykyä
- skaalautuvuutta
- yksinkertaisuutta
- muunneltavuutta
- siirrettävyyttä
- luotettavuutta.
Lähteet
muokkaa- ↑ Fielding Dissertation: CHAPTER 5: Representational State Transfer (REST) www.ics.uci.edu. Viitattu 13.3.2022.
- ↑ REST APIs must be hypertext-driven » Untangled roy.gbiv.com. Viitattu 13.3.2022.
- ↑ 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)