HATEOAS

Kokeneet kirjoittajat eivät ole vielä tarkistaneet sivun nykyistä versiota, ja se voi poiketa merkittävästi 30.5.2019 tarkistetusta versiosta . tarkastukset vaativat 4 muokkausta .

HATEOAS ( Hypermedia a s t he Engine o f A Application State ) ovat arkkitehtonisia rajoituksia REST - sovelluksille .

HATEOAS:n avulla asiakas on vuorovaikutuksessa verkkosovelluksen kanssa, jonka palvelin tarjoaa dynaamisen pääsyn hypermedian kautta . REST-asiakkaan ei tarvitse tietää etukäteen, kuinka se on vuorovaikutuksessa sovelluksen tai palvelimen kanssa hypermedian ulkopuolella.

Toisin kuin SOA -arkkitehtuuri , jossa asiakas-palvelin-vuorovaikutus määritellään tiukasti rajapinnalla, HATEOAS erottaa asiakkaan palvelimesta ja antaa niiden kehittyä itsenäisesti.

Kuvaus

REST-asiakas käyttää kiinteää URL-osoitetta, ja kaikki asiakkaan myöhemmät toiminnot tunnetaan palvelimelta palautetuista resursseista. Resurssityypit, esitykset ja niiden suhteet ovat standardoituja. Asiakas kulkee resurssien läpi hakemalla linkkejä tai toimimalla millä tahansa muulla mahdollisella tavalla tämän tyyppiselle resurssille. Siten RESTful-vuorovaikutukset toimivat hypermedian kautta eikä ennalta määritellyn käyttöliittymän kautta [1] .

Tee esimerkiksi pyyntö, joka palauttaa tiliresurssin XML-muodossa [2] :

GET /accounts/12345 HTTP / 1.1 Host : bank.example.com Hyväksy : application/xml ...

Vastaus tulee olemaan:

HTTP / 1.1 200 OK Sisältö-tyyppi : sovellus/xml Sisältö-pituus : ... <?xml version="1.0"?> <tili> <tilin_numero> 12345 </account_number> <saldo currency= "usd" > 100,00 </balance> <link rel= "talletus" href= "https://pankki. esimerkki.fi/tilit/12345/talletus" /> <link rel= "nosto" href= "https://pankki.esimerkki.fi/tilit/12345/nosto" /> <link rel= "siirto" href= " https://bank.example.com/accounts/12345/transfer" /> <link rel= "close" href= "https://bank.example.com/accounts/12345/close" /> </account>

Vastaus sisältää linkkejä talletuksiin, kotiutuksiin, siirtoihin ja tilin sulkemiseen

Jos saldo on negatiivinen, käytettävissä on vain talletus:

HTTP / 1.1 200 OK Sisältö-tyyppi : sovellus/xml Sisältö-pituus : ... <?xml version="1.0"?> <tili> <tilin_numero> 12345 </account_number> <saldo currency= "usd" > -25,00 </balance> <link rel= "talletus" href= "https://pankki .example.com/account/12345/deposit" /> </account>

Nyt käytettävissä on vain yksi linkki: talleta enemmän rahaa. Tästä syystä "sovelluksen moottori" otsikossa. Mahdolliset toimet vaihtelevat resurssin tilan mukaan.

Asiakkaan ei tarvitse tietää etukäteen resurssien tyyppejä ja mekanismeja vuorovaikutuksessa niiden kanssa palvelimen kautta. Uudentyyppisten resurssien ymmärtäminen hankitaan reaaliajassa, ajon aikana, kun resurssit vastaanotetaan palvelimelta [3] .

Historia

Roy Fieldingin väitöskirja identifioi HATEOAS-rajoitukset kiinteäksi osaksi "yhden rajapinnan" ominaisuutta [3] [1] .

Muistiinpanot

  1. 1 2 Fielding, Roy T. REST API:iden on oltava hypertekstipohjaisia ​​(20. lokakuuta 2008). Haettu 20. toukokuuta 2010. Arkistoitu alkuperäisestä 18. maaliskuuta 2010.
  2. "REESTful keittokirja" . Haettu 1. marraskuuta 2017. Arkistoitu alkuperäisestä 31. tammikuuta 2020.
  3. 1 2 "Representational State Transfer (REST)" . Haettu 1. marraskuuta 2017. Arkistoitu alkuperäisestä 13. toukokuuta 2021.

Linkit