HATEOAS

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 30. maj 2019; checks kræver 4 redigeringer .

HATEOAS ( H ypermedia a s t he E ngine of a pplication state ) er arkitektoniske restriktioner for REST - applikationer .

Med HATEOAS interagerer klienten med en netværksapplikation, hvis server giver dynamisk adgang via hypermedier . REST-klienten behøver ikke på forhånd at vide, hvordan man interagerer med applikationen eller serveren uden for hypermedier.

I modsætning til SOA -arkitekturen , hvor klient-server-interaktioner er strengt defineret af en grænseflade, adskiller HATEOAS klienten fra serveren og giver dem mulighed for at udvikle sig uafhængigt.

Beskrivelse

REST-klienten tilgår den faste URL, og alle efterfølgende handlinger fra klienten kendes fra de ressourcer, der returneres fra serveren. Ressourcetyper, repræsentationer og deres relationer er standardiserede. Klienten krydser ressourcerne ved at hente links eller interagere på enhver anden mulig måde for den type ressource. RESTful interaktioner fungerer således gennem hypermedier snarere end gennem en foruddefineret grænseflade [1] .

Lav for eksempel en anmodning, der returnerer en kontoressource i en XML-repræsentation [2] :

GET /accounts/12345 HTTP / 1.1 Host : bank.example.com Accepter : application/xml ...

Svaret vil være:

HTTP / 1.1 200 OK Indholdstype : applikation/xml Indholdslængde : ... <?xml version="1.0"?> <account> <account_number> 12345 </account_number> <balance currency= "usd" > 100,00 </balance> <link rel= "deposit" href= "https://bank. eksempel.com/konti/12345/indskud" /> <link rel= "udtræk" href= "https://bank.eksempel.com/konti/12345/udbetaling" /> <link rel= "overfør" href= " https://bank.example.com/accounts/12345/transfer" /> <link rel= "close" href= "https://bank.example.com/accounts/12345/close" /> </account>

Svaret indeholder links til at indbetale, hæve, overføre og lukke kontoen

I tilfælde af en negativ saldo er kun et depositum tilgængeligt:

HTTP / 1.1 200 OK Indholdstype : applikation/xml Indholdslængde : ... <?xml version="1.0"?> <account> <account_number> 12345 </account_number> <balance currency= "usd" > -25,00 </balance> <link rel= "deposit" href= "https://bank .example.com/account/12345/deposit" /> </account>

Nu er kun ét link tilgængeligt: ​​Indbetal flere penge. Derfor "The Engine of Application State" i titlen. De mulige handlinger varierer afhængigt af ressourcens tilstand.

Klienten behøver ikke på forhånd at kende typerne af ressourcer og mekanismerne til at interagere med dem gennem serveren. Forståelse af nye typer ressourcer opnås i realtid, ved kørsel, når ressourcer modtages fra serveren [3] .

Historie

Roy Fieldings ph.d.-afhandling identificerede HATEOAS-begrænsninger som en integreret del af "single interface"-funktionen [3] [1] .

Noter

  1. 1 2 Fielding, Roy T. REST API'er skal være hypertekstdrevne (20. oktober 2008). Hentet 20. maj 2010. Arkiveret fra originalen 18. marts 2010.
  2. "Den afslappede kogebog" . Hentet 1. november 2017. Arkiveret fra originalen 31. januar 2020.
  3. 1 2 "Repræsentativ statsoverførsel (REST)" . Hentet 1. november 2017. Arkiveret fra originalen 13. maj 2021.

Links