HATEOAS

Az oldal jelenlegi verzióját még nem ellenőrizték tapasztalt közreműködők, és jelentősen eltérhet a 2019. május 30-án felülvizsgált verziótól ; az ellenőrzések 4 szerkesztést igényelnek .

A HATEOAS ( Hypermedia a s t he Engine o f A Application State ) a REST - alkalmazások építészeti korlátozása .

A HATEOAS segítségével az ügyfél olyan hálózati alkalmazással lép kapcsolatba, amelynek szervere dinamikus hozzáférést biztosít hipermédián keresztül . A REST kliensnek nem kell előre tudnia, hogyan kommunikálhat az alkalmazással vagy a szerverrel a hipermédián kívül.

A SOA architektúrától eltérően , ahol a kliens-szerver interakciókat szigorúan egy interfész határozza meg, a HATEOAS elválasztja az ügyfelet a szervertől, és lehetővé teszi számukra, hogy egymástól függetlenül fejlődjenek.

Leírás

A REST kliens hozzáfér a rögzített URL-hez, és az ügyfél minden további művelete a kiszolgálótól visszaadott erőforrásokból ismert. Az erőforrástípusok, reprezentációk és kapcsolataik szabványosítottak. A kliens az erőforrásokat úgy járja be, hogy hivatkozásokat kér le, vagy bármilyen más módon interakciót folytat az adott típusú erőforráshoz. Így a RESTful interakciók hipermédián keresztül működnek, nem pedig előre meghatározott interfészen [1] .

Például készítsen egy kérést, amely egy fiókerőforrást XML-reprezentációban ad vissza [2] :

GET /accounts/12345 HTTP / 1.1 Host : bank.example.com Elfogadás : application/xml ...

A válasz a következő lesz:

HTTP / 1.1 200 OK Tartalom típusa : Application/xml Tartalomhossz : ... <?xml version="1.0"?> <account> <account_number> 12345 </account_number> <balance currency= "usd" > 100.00 </balance> <link rel= "deposit" href= "https://bank. example.com/accounts/12345/befizetés" /> <link rel= "kivonás" href= "https://bank.example.com/accounts/12345/kivonat" /> <link rel= "átutalás" href= " https://bank.example.com/accounts/12345/transfer" /> <link rel= "close" href= "https://bank.example.com/accounts/12345/close" /> </account>

A válasz hivatkozásokat tartalmaz a befizetéshez, kifizetéshez, átutaláshoz és a számla lezárásához

Negatív egyenleg esetén csak befizetés lehetséges:

HTTP / 1.1 200 OK Tartalom típusa : Application/xml Tartalomhossz : ... <?xml version="1.0"?> <account> <account_number> 12345 </account_number> <balance currency= "usd" > -25.00 </balance> <link rel= "befizetés" href= "https://bank .example.com/account/12345/deposit" /> </account>

Most már csak egy link érhető el: helyezzen be több pénzt. Ezért a címben szereplő "alkalmazás motorja". A lehetséges műveletek az erőforrás állapotától függően változnak.

Az ügyfélnek nem kell előre ismernie az erőforrások típusait és a velük a szerveren keresztüli interakció mechanizmusait. Az új típusú erőforrások megértése valós időben, futási időben történik, amikor az erőforrásokat megkapják a szervertől [3] .

Történelem

Roy Fielding doktori disszertációja a HATEOAS korlátokat az „egy interfész” funkció szerves részeként azonosította [3] [1] .

Jegyzetek

  1. 1 2 Fielding, Roy T. A REST API-knak hipertext-vezéreltnek kell lenniük (2008. október 20.). Letöltve: 2010. május 20. Az eredetiből archiválva : 2010. március 18..
  2. "A RESTful Szakácskönyv" . Letöltve: 2017. november 1. Az eredetiből archiválva : 2020. január 31.
  3. 1 2 "Képviseleti állapotátadás (REST)" . Letöltve: 2017. november 1. Az eredetiből archiválva : 2021. május 13.

Linkek