ugrás a tartalomhoz

Archívum - Okt 5, 2013

REST - HATEOAS és range request elvek ütközése

inf · 2013. Okt. 5. (Szo), 02.31
Ha valaki nem lenne tisztában a két elvvel:

A HATEOAS kb azt mondja, hogy ahhoz, hogy egy REST service-hez könnyen tudjunk klienst készíteni, úgy kell válaszolni a kérésekre, hogy visszaadjuk bennük, hogy milyen további interakciók lehetségesek az erőforrással kapcsolatban. Ez egy lapozható gyűjteménynél pl így néz ki:

GET /users?offset=0&limit=25

200 ok

{
	href: "/users/",
	offset: 0,
	limit: 25,
	first: {
		href: "/users?offset=0&limit=25"
	},
	next: {
		href: "/users?offset=25&limit=25"
	},
	previous: null,
	last: {
		href: "/users/?offset=125&limit=25"
	},
	items: [
		{
			href: "/users/1",
			id: 1,
			name: "Jánszky László",
			registrationTime: "2014-10-28 10:00:01"
		},
		...
		{
			href: "/users/26",
			id: 26,
			name: "Krieg Antónia",
			registrationTime: "2015-01-09 01:00:11"
		},
	]
}
Így nagyon egyszerű egy lapozót generálni, mert az aktuális oldalak lekéréséhez mindenhol megvan a megfelelő link, csak hozzá kell csapni egy GET-et. Az egyes item-eknél is ott van a link, amivel részletesebb tartalmat lehet lekérni, és így tovább...


A Range Request-eknél a lapozzás kapcsolatos információ a header-ekben utazik valahogy így::

GET /users
Range: items=0-24

206 partial content
Content Range: items=0-24/138

{
    //felhasználó lista
}
A modern böngészők tudják kezelni a cache-ükben mindezt, úgyhogy az nem indokolja, hogy url-be tegyük a kérésnek ezt a részét.

A kérdés az, hogy szerintetek milyen legyen a visszatérő json formája ahhoz, hogy a HATEOAS elve ne sérüljön, tehát a következő lapra mutató link automatikusan generálható legyen belőle?
 

Update

wreakz · 2013. Okt. 5. (Szo), 00.47
Sziasztok!
Nem találom a hibát, tudnátok segíteni ?
Lehet hogy én vagyok a vak, de nem találom :/
Az adatbázisnév szándékosan van kipontozva, nem az a hiba.

<form method="post">
<input type="text" name="adminfel" value=""></input>
</form>




if( isset( $_POST['adminhozzaadas'] ) )
{
mysql_connect( $ab_kiszolgalo, $ab_felhasznalo, $ab_jelszo);
mysql_select_db("...") or die("Adatbázis hiba!");
$parancs = "UPDATE accounts SET admin='2' WHERE username='".$_POST['adminfel']."'";  
mysql_query($parancs);
echo '<meta http-equiv=refresh content="5">
<div id=profile_siker class=windowbg>Sikeresen hozzáadva.</div><br>';
}


<form method="POST">
        <input type="submit" class="myButton" name="adminhozzaadas" value="Hozzáadás">
</form>