<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="hu">
	<id>https://vik.wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Tank</id>
	<title>VIK Wiki - Felhasználó közreműködései [hu]</title>
	<link rel="self" type="application/atom+xml" href="https://vik.wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Tank"/>
	<link rel="alternate" type="text/html" href="https://vik.wiki/Speci%C3%A1lis:Szerkeszt%C5%91_k%C3%B6zrem%C5%B1k%C3%B6d%C3%A9sei/Tank"/>
	<updated>2026-05-21T03:50:00Z</updated>
	<subtitle>Felhasználó közreműködései</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://vik.wiki/index.php?title=8._REST_(2012)&amp;diff=166404</id>
		<title>8. REST (2012)</title>
		<link rel="alternate" type="text/html" href="https://vik.wiki/index.php?title=8._REST_(2012)&amp;diff=166404"/>
		<updated>2013-05-26T18:29:06Z</updated>

		<summary type="html">&lt;p&gt;Tank: /* JAX-RS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Csonk}}&lt;br /&gt;
&lt;br /&gt;
=HTTP=&lt;br /&gt;
* HTTP GET&lt;br /&gt;
[[Fájl:HTTP_GET.png]]&lt;br /&gt;
* HTTP POST&lt;br /&gt;
[[Fájl:HTTP_POST.png]]&lt;br /&gt;
&lt;br /&gt;
=REST=&lt;br /&gt;
REST = Representational State Transfer&lt;br /&gt;
&lt;br /&gt;
==RESTful HTTP==&lt;br /&gt;
* HTTP protokoll kibövítése: GET, POST, PUT, DELETE&lt;br /&gt;
* Bemenö paraméterek: URL része, URL query string, POST paraméter, HTTP body&lt;br /&gt;
* Visszatérési érték: HTTP body&lt;br /&gt;
* nagyon egyszerü: böngészőből is tesztelhetö&lt;br /&gt;
&lt;br /&gt;
==REST alapelvei==&lt;br /&gt;
* Minden eröforráshoz azonosító rendelése (URI, URN, URL a jó, mert egyértelmű, könnyű feloldani, független a mögöttes technológiától)&lt;br /&gt;
* Erőforrások lehetnek: doksik, adatok (szamitas eredmenye), szolgáltatások (SOAP, metaadatok, stb), fogalmak&lt;br /&gt;
* Dolgok összekapcsolása (jó URL cimet kell választani)&lt;br /&gt;
* CRUD müveletek használata (Create, Read, Update, Delete)&lt;br /&gt;
* Állapotmentes kommunikáció&lt;br /&gt;
&lt;br /&gt;
==Többféle adatreprezentáció==&lt;br /&gt;
*HTML (emberek szamara) vagy XML, JSON, stb. gépek számára&lt;br /&gt;
*változhat a struktúra&lt;br /&gt;
&lt;br /&gt;
==Állapotmentes kommunikáció==&lt;br /&gt;
A REST önmagában állapotmentes&lt;br /&gt;
*De az alkalmazásnak lehet állapota (kliens oldalon, erőforrásban tárolva)&lt;br /&gt;
*Skálázhatósági előnyök emiatt (nincs session, felcserélhető szerverek)&lt;br /&gt;
&lt;br /&gt;
==Műveletek erőforrásokon==&lt;br /&gt;
[[Fájl:muv_eroforr.png]]&lt;br /&gt;
* &#039;&#039;&#039;safe:&#039;&#039;&#039; a kliens olyan műveletet hajt végre, ami csak lekérdez, és nem tehető felelőssé az okozott mellékhatásokért&lt;br /&gt;
* &#039;&#039;&#039;idempotent&#039;&#039;&#039;: a művelet ismételt végrehajtása ugyanazt az eredményt produkálja&lt;br /&gt;
* &#039;&#039;&#039;cacheable&#039;&#039;&#039;: akár a proxy vagy a gateway is cachelheti a szerver kapcsolódása nélkül. Képek esetén ajánlatos a long live beállitása.&lt;br /&gt;
&lt;br /&gt;
==REST kritikák==&lt;br /&gt;
* CRUD műveleteken kívül másra nem alkalmas&lt;br /&gt;
* Nincs interfészleíró (ami leírja a műveleteket és a paraméterek típusát (szemantikát nem, azaz kliens stub -&amp;gt; szerver skeleton generálás))&lt;br /&gt;
* Túl sok belső részletet elárul (igen, mert szemlélet más: műveletközpontú helyett adatközpontú)&lt;br /&gt;
* Tervezési guideline-ok hiánya&lt;br /&gt;
* Middleware funkciók hiánya (nincs tranzakció kezelés, meg nem biztos hogy jönn a HTTP 200 OK válasz)&lt;br /&gt;
* Nincs publish-subscribe (pl egy RSS proginak) ill. aszinkron kommunikáció (ha a szerver hosszú müveletet végez, megoldásként HTTP 202 Accepted)&lt;br /&gt;
&lt;br /&gt;
==JAX-RS==&lt;br /&gt;
* JAX-RS: Java API for RESTful Web Services&lt;br /&gt;
* Java osztályok leképzése REST erőforrásokra (annotációk)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Számológép példa revisited&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
@Path(&amp;quot;calculator&amp;quot;)&lt;br /&gt;
public class Calculator{&lt;br /&gt;
     @GET&lt;br /&gt;
     @Path(&amp;quot;add&amp;quot;)&lt;br /&gt;
     @Produces(&amp;quot;text/plain&amp;quot;)&lt;br /&gt;
     public double add(@QueryParam(&amp;quot;left&amp;quot;) double left, @QueryParam(&amp;quot;right&amp;quot;) double right) { return left+right; }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Lehetséges visszatérési értékek&#039;&#039;&#039;&lt;br /&gt;
* void, null (204 no content status code)&lt;br /&gt;
* Response&lt;br /&gt;
* GenericEntity&lt;br /&gt;
* egyébb&lt;br /&gt;
&lt;br /&gt;
* Stringet támogat, double-t nem&lt;br /&gt;
** double-re a megoldás a &amp;quot;MessageBodyWriter&amp;quot; implementálása&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;HTTP method annotációk:&#039;&#039;&#039; @GET, @POST, @PUT, @DELETE, @HEAD&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;HTTP content-type annotációk:&#039;&#039;&#039; @Consumes, @Produces&lt;br /&gt;
&lt;br /&gt;
= Elosztott technológiák összefoglaló =&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!&amp;amp;nbsp;&lt;br /&gt;
!REST&lt;br /&gt;
!RMI&lt;br /&gt;
!WS&lt;br /&gt;
!CORBA&lt;br /&gt;
|-&lt;br /&gt;
!Különbözö programnyelvek között müködik&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Kommunikációs protokoll&lt;br /&gt;
|HTTP&lt;br /&gt;
|RMI&lt;br /&gt;
|SOAP&lt;br /&gt;
|IIOP&lt;br /&gt;
|-&lt;br /&gt;
!Interfészleíró&lt;br /&gt;
|nincs/WADL&lt;br /&gt;
|Java Interface&lt;br /&gt;
|WSDL&lt;br /&gt;
|IDL&lt;br /&gt;
|-&lt;br /&gt;
!Katalógus&lt;br /&gt;
|JNDI&lt;br /&gt;
|UDDI&lt;br /&gt;
|Naming Service&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
!Elosztott&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Szakványos&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Széles körü támogatás&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Egyszerü&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|nem&lt;br /&gt;
|-&lt;br /&gt;
!Egyszerü API&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|-&lt;br /&gt;
!Gyors&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Biztonság, tranzakciók&lt;br /&gt;
|nem&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;/div&gt;</summary>
		<author><name>Tank</name></author>
	</entry>
	<entry>
		<id>https://vik.wiki/index.php?title=8._REST_(2012)&amp;diff=166403</id>
		<title>8. REST (2012)</title>
		<link rel="alternate" type="text/html" href="https://vik.wiki/index.php?title=8._REST_(2012)&amp;diff=166403"/>
		<updated>2013-05-26T18:28:46Z</updated>

		<summary type="html">&lt;p&gt;Tank: /* JAX-RS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Csonk}}&lt;br /&gt;
&lt;br /&gt;
=HTTP=&lt;br /&gt;
* HTTP GET&lt;br /&gt;
[[Fájl:HTTP_GET.png]]&lt;br /&gt;
* HTTP POST&lt;br /&gt;
[[Fájl:HTTP_POST.png]]&lt;br /&gt;
&lt;br /&gt;
=REST=&lt;br /&gt;
REST = Representational State Transfer&lt;br /&gt;
&lt;br /&gt;
==RESTful HTTP==&lt;br /&gt;
* HTTP protokoll kibövítése: GET, POST, PUT, DELETE&lt;br /&gt;
* Bemenö paraméterek: URL része, URL query string, POST paraméter, HTTP body&lt;br /&gt;
* Visszatérési érték: HTTP body&lt;br /&gt;
* nagyon egyszerü: böngészőből is tesztelhetö&lt;br /&gt;
&lt;br /&gt;
==REST alapelvei==&lt;br /&gt;
* Minden eröforráshoz azonosító rendelése (URI, URN, URL a jó, mert egyértelmű, könnyű feloldani, független a mögöttes technológiától)&lt;br /&gt;
* Erőforrások lehetnek: doksik, adatok (szamitas eredmenye), szolgáltatások (SOAP, metaadatok, stb), fogalmak&lt;br /&gt;
* Dolgok összekapcsolása (jó URL cimet kell választani)&lt;br /&gt;
* CRUD müveletek használata (Create, Read, Update, Delete)&lt;br /&gt;
* Állapotmentes kommunikáció&lt;br /&gt;
&lt;br /&gt;
==Többféle adatreprezentáció==&lt;br /&gt;
*HTML (emberek szamara) vagy XML, JSON, stb. gépek számára&lt;br /&gt;
*változhat a struktúra&lt;br /&gt;
&lt;br /&gt;
==Állapotmentes kommunikáció==&lt;br /&gt;
A REST önmagában állapotmentes&lt;br /&gt;
*De az alkalmazásnak lehet állapota (kliens oldalon, erőforrásban tárolva)&lt;br /&gt;
*Skálázhatósági előnyök emiatt (nincs session, felcserélhető szerverek)&lt;br /&gt;
&lt;br /&gt;
==Műveletek erőforrásokon==&lt;br /&gt;
[[Fájl:muv_eroforr.png]]&lt;br /&gt;
* &#039;&#039;&#039;safe:&#039;&#039;&#039; a kliens olyan műveletet hajt végre, ami csak lekérdez, és nem tehető felelőssé az okozott mellékhatásokért&lt;br /&gt;
* &#039;&#039;&#039;idempotent&#039;&#039;&#039;: a művelet ismételt végrehajtása ugyanazt az eredményt produkálja&lt;br /&gt;
* &#039;&#039;&#039;cacheable&#039;&#039;&#039;: akár a proxy vagy a gateway is cachelheti a szerver kapcsolódása nélkül. Képek esetén ajánlatos a long live beállitása.&lt;br /&gt;
&lt;br /&gt;
==REST kritikák==&lt;br /&gt;
* CRUD műveleteken kívül másra nem alkalmas&lt;br /&gt;
* Nincs interfészleíró (ami leírja a műveleteket és a paraméterek típusát (szemantikát nem, azaz kliens stub -&amp;gt; szerver skeleton generálás))&lt;br /&gt;
* Túl sok belső részletet elárul (igen, mert szemlélet más: műveletközpontú helyett adatközpontú)&lt;br /&gt;
* Tervezési guideline-ok hiánya&lt;br /&gt;
* Middleware funkciók hiánya (nincs tranzakció kezelés, meg nem biztos hogy jönn a HTTP 200 OK válasz)&lt;br /&gt;
* Nincs publish-subscribe (pl egy RSS proginak) ill. aszinkron kommunikáció (ha a szerver hosszú müveletet végez, megoldásként HTTP 202 Accepted)&lt;br /&gt;
&lt;br /&gt;
==JAX-RS==&lt;br /&gt;
* JAX-RS: Java API for RESTful Web Services&lt;br /&gt;
* Java osztályok leképzése REST erőforrásokra (annotációk)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Számológép példa revisited&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
@Path(&amp;quot;calculator&amp;quot;)&lt;br /&gt;
public class Calculator{&lt;br /&gt;
     @GET&lt;br /&gt;
     @Path(&amp;quot;add&amp;quot;)&lt;br /&gt;
     @Produces(&amp;quot;text/plain&amp;quot;)&lt;br /&gt;
     public double add(@QueryParam(&amp;quot;left&amp;quot;) double left, @QueryParam(&amp;quot;right&amp;quot;) double right) { return left+right; }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Lehetséges visszatérési értékek&#039;&#039;&#039;&lt;br /&gt;
* void, null (204 no content status code)&lt;br /&gt;
* Response&lt;br /&gt;
* GenericEntity&lt;br /&gt;
* egyébb&lt;br /&gt;
&lt;br /&gt;
* Stringet támogat, double-t nem&lt;br /&gt;
** double-re a megoldás a &amp;quot;MessageBodyWriter&amp;quot; implementálása&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;HTTP method annotációk:&#039;&#039;&#039; @GET, @POST, @PUT, @DELETE, @HEAD&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;HTTP content-type annotációk:&#039;&#039;&#039; @Consumes, @Produces&lt;br /&gt;
&lt;br /&gt;
= Elosztott technológiák összefoglaló =&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!&amp;amp;nbsp;&lt;br /&gt;
!REST&lt;br /&gt;
!RMI&lt;br /&gt;
!WS&lt;br /&gt;
!CORBA&lt;br /&gt;
|-&lt;br /&gt;
!Különbözö programnyelvek között müködik&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Kommunikációs protokoll&lt;br /&gt;
|HTTP&lt;br /&gt;
|RMI&lt;br /&gt;
|SOAP&lt;br /&gt;
|IIOP&lt;br /&gt;
|-&lt;br /&gt;
!Interfészleíró&lt;br /&gt;
|nincs/WADL&lt;br /&gt;
|Java Interface&lt;br /&gt;
|WSDL&lt;br /&gt;
|IDL&lt;br /&gt;
|-&lt;br /&gt;
!Katalógus&lt;br /&gt;
|JNDI&lt;br /&gt;
|UDDI&lt;br /&gt;
|Naming Service&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
!Elosztott&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Szakványos&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Széles körü támogatás&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Egyszerü&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|nem&lt;br /&gt;
|-&lt;br /&gt;
!Egyszerü API&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|-&lt;br /&gt;
!Gyors&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Biztonság, tranzakciók&lt;br /&gt;
|nem&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;/div&gt;</summary>
		<author><name>Tank</name></author>
	</entry>
	<entry>
		<id>https://vik.wiki/index.php?title=8._REST_(2012)&amp;diff=166402</id>
		<title>8. REST (2012)</title>
		<link rel="alternate" type="text/html" href="https://vik.wiki/index.php?title=8._REST_(2012)&amp;diff=166402"/>
		<updated>2013-05-26T18:26:24Z</updated>

		<summary type="html">&lt;p&gt;Tank: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Csonk}}&lt;br /&gt;
&lt;br /&gt;
=HTTP=&lt;br /&gt;
* HTTP GET&lt;br /&gt;
[[Fájl:HTTP_GET.png]]&lt;br /&gt;
* HTTP POST&lt;br /&gt;
[[Fájl:HTTP_POST.png]]&lt;br /&gt;
&lt;br /&gt;
=REST=&lt;br /&gt;
REST = Representational State Transfer&lt;br /&gt;
&lt;br /&gt;
==RESTful HTTP==&lt;br /&gt;
* HTTP protokoll kibövítése: GET, POST, PUT, DELETE&lt;br /&gt;
* Bemenö paraméterek: URL része, URL query string, POST paraméter, HTTP body&lt;br /&gt;
* Visszatérési érték: HTTP body&lt;br /&gt;
* nagyon egyszerü: böngészőből is tesztelhetö&lt;br /&gt;
&lt;br /&gt;
==REST alapelvei==&lt;br /&gt;
* Minden eröforráshoz azonosító rendelése (URI, URN, URL a jó, mert egyértelmű, könnyű feloldani, független a mögöttes technológiától)&lt;br /&gt;
* Erőforrások lehetnek: doksik, adatok (szamitas eredmenye), szolgáltatások (SOAP, metaadatok, stb), fogalmak&lt;br /&gt;
* Dolgok összekapcsolása (jó URL cimet kell választani)&lt;br /&gt;
* CRUD müveletek használata (Create, Read, Update, Delete)&lt;br /&gt;
* Állapotmentes kommunikáció&lt;br /&gt;
&lt;br /&gt;
==Többféle adatreprezentáció==&lt;br /&gt;
*HTML (emberek szamara) vagy XML, JSON, stb. gépek számára&lt;br /&gt;
*változhat a struktúra&lt;br /&gt;
&lt;br /&gt;
==Állapotmentes kommunikáció==&lt;br /&gt;
A REST önmagában állapotmentes&lt;br /&gt;
*De az alkalmazásnak lehet állapota (kliens oldalon, erőforrásban tárolva)&lt;br /&gt;
*Skálázhatósági előnyök emiatt (nincs session, felcserélhető szerverek)&lt;br /&gt;
&lt;br /&gt;
==Műveletek erőforrásokon==&lt;br /&gt;
[[Fájl:muv_eroforr.png]]&lt;br /&gt;
* &#039;&#039;&#039;safe:&#039;&#039;&#039; a kliens olyan műveletet hajt végre, ami csak lekérdez, és nem tehető felelőssé az okozott mellékhatásokért&lt;br /&gt;
* &#039;&#039;&#039;idempotent&#039;&#039;&#039;: a művelet ismételt végrehajtása ugyanazt az eredményt produkálja&lt;br /&gt;
* &#039;&#039;&#039;cacheable&#039;&#039;&#039;: akár a proxy vagy a gateway is cachelheti a szerver kapcsolódása nélkül. Képek esetén ajánlatos a long live beállitása.&lt;br /&gt;
&lt;br /&gt;
==REST kritikák==&lt;br /&gt;
* CRUD műveleteken kívül másra nem alkalmas&lt;br /&gt;
* Nincs interfészleíró (ami leírja a műveleteket és a paraméterek típusát (szemantikát nem, azaz kliens stub -&amp;gt; szerver skeleton generálás))&lt;br /&gt;
* Túl sok belső részletet elárul (igen, mert szemlélet más: műveletközpontú helyett adatközpontú)&lt;br /&gt;
* Tervezési guideline-ok hiánya&lt;br /&gt;
* Middleware funkciók hiánya (nincs tranzakció kezelés, meg nem biztos hogy jönn a HTTP 200 OK válasz)&lt;br /&gt;
* Nincs publish-subscribe (pl egy RSS proginak) ill. aszinkron kommunikáció (ha a szerver hosszú müveletet végez, megoldásként HTTP 202 Accepted)&lt;br /&gt;
&lt;br /&gt;
==JAX-RS==&lt;br /&gt;
* JAX-RS: Java API for RESTful Web Services&lt;br /&gt;
* Java osztályok leképzése REST erőforrásokra (annotációk)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Számológép példa revisited&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
@Path(&amp;quot;calculator&amp;quot;)&lt;br /&gt;
public class Calculator{&lt;br /&gt;
     @GET&lt;br /&gt;
     @Path(&amp;quot;add&amp;quot;)&lt;br /&gt;
     @Produces(&amp;quot;text/plain&amp;quot;)&lt;br /&gt;
     public double add(@QueryParam(&amp;quot;left&amp;quot;) double left, @QueryParam(&amp;quot;right&amp;quot;) double right) { return left+right; }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Lehetséges visszatérési értékek&#039;&#039;&#039;&lt;br /&gt;
* void, null (204 no content status code)&lt;br /&gt;
* Response&lt;br /&gt;
* GenericEntity&lt;br /&gt;
* egyébb&lt;br /&gt;
&lt;br /&gt;
* Stringet támogat, double-t nem&lt;br /&gt;
** double-re a megoldás a &amp;quot;MessageBodyWriter&amp;quot; implementálása&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;HTTP method annotációk:&#039;&#039;&#039; @GET, @POST, @PUT, @DELETE, @HEAD&lt;br /&gt;
&#039;&#039;&#039;HTTP content-type annotációk:&#039;&#039;&#039; @Consumes, @Produces&lt;br /&gt;
&lt;br /&gt;
= Elosztott technológiák összefoglaló =&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!&amp;amp;nbsp;&lt;br /&gt;
!REST&lt;br /&gt;
!RMI&lt;br /&gt;
!WS&lt;br /&gt;
!CORBA&lt;br /&gt;
|-&lt;br /&gt;
!Különbözö programnyelvek között müködik&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Kommunikációs protokoll&lt;br /&gt;
|HTTP&lt;br /&gt;
|RMI&lt;br /&gt;
|SOAP&lt;br /&gt;
|IIOP&lt;br /&gt;
|-&lt;br /&gt;
!Interfészleíró&lt;br /&gt;
|nincs/WADL&lt;br /&gt;
|Java Interface&lt;br /&gt;
|WSDL&lt;br /&gt;
|IDL&lt;br /&gt;
|-&lt;br /&gt;
!Katalógus&lt;br /&gt;
|JNDI&lt;br /&gt;
|UDDI&lt;br /&gt;
|Naming Service&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
!Elosztott&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Szakványos&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Széles körü támogatás&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Egyszerü&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|nem&lt;br /&gt;
|-&lt;br /&gt;
!Egyszerü API&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|-&lt;br /&gt;
!Gyors&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Biztonság, tranzakciók&lt;br /&gt;
|nem&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;/div&gt;</summary>
		<author><name>Tank</name></author>
	</entry>
	<entry>
		<id>https://vik.wiki/index.php?title=8._REST_(2012)&amp;diff=166401</id>
		<title>8. REST (2012)</title>
		<link rel="alternate" type="text/html" href="https://vik.wiki/index.php?title=8._REST_(2012)&amp;diff=166401"/>
		<updated>2013-05-26T18:24:58Z</updated>

		<summary type="html">&lt;p&gt;Tank: /* JAX-RS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Csonk}}&lt;br /&gt;
&lt;br /&gt;
=HTTP=&lt;br /&gt;
* HTTP GET&lt;br /&gt;
[[Fájl:HTTP_GET.png]]&lt;br /&gt;
* HTTP POST&lt;br /&gt;
[[Fájl:HTTP_POST.png]]&lt;br /&gt;
&lt;br /&gt;
=REST=&lt;br /&gt;
REST = Representational State Transfer&lt;br /&gt;
&lt;br /&gt;
==RESTful HTTP==&lt;br /&gt;
* HTTP protokoll kibövítése: GET, POST, PUT, DELETE&lt;br /&gt;
* Bemenö paraméterek: URL része, URL query string, POST paraméter, HTTP body&lt;br /&gt;
* Visszatérési érték: HTTP body&lt;br /&gt;
* nagyon egyszerü: böngészőből is tesztelhetö&lt;br /&gt;
&lt;br /&gt;
==REST alapelvei==&lt;br /&gt;
* Minden eröforráshoz azonosító rendelése (URI, URN, URL a jó, mert egyértelmű, könnyű feloldani, független a mögöttes technológiától)&lt;br /&gt;
* Erőforrások lehetnek: doksik, adatok (szamitas eredmenye), szolgáltatások (SOAP, metaadatok, stb), fogalmak&lt;br /&gt;
* Dolgok összekapcsolása (jó URL cimet kell választani)&lt;br /&gt;
* CRUD müveletek használata (Create, Read, Update, Delete)&lt;br /&gt;
* Állapotmentes kommunikáció&lt;br /&gt;
&lt;br /&gt;
==Többféle adatreprezentáció==&lt;br /&gt;
*HTML (emberek szamara) vagy XML, JSON, stb. gépek számára&lt;br /&gt;
*változhat a struktúra&lt;br /&gt;
&lt;br /&gt;
==Állapotmentes kommunikáció==&lt;br /&gt;
A REST önmagában állapotmentes&lt;br /&gt;
*De az alkalmazásnak lehet állapota (kliens oldalon, erőforrásban tárolva)&lt;br /&gt;
*Skálázhatósági előnyök emiatt (nincs session, felcserélhető szerverek)&lt;br /&gt;
&lt;br /&gt;
==Műveletek erőforrásokon==&lt;br /&gt;
[[Fájl:muv_eroforr.png]]&lt;br /&gt;
* &#039;&#039;&#039;safe:&#039;&#039;&#039; a kliens olyan műveletet hajt végre, ami csak lekérdez, és nem tehető felelőssé az okozott mellékhatásokért&lt;br /&gt;
* &#039;&#039;&#039;idempotent&#039;&#039;&#039;: a művelet ismételt végrehajtása ugyanazt az eredményt produkálja&lt;br /&gt;
* &#039;&#039;&#039;cacheable&#039;&#039;&#039;: akár a proxy vagy a gateway is cachelheti a szerver kapcsolódása nélkül. Képek esetén ajánlatos a long live beállitása.&lt;br /&gt;
&lt;br /&gt;
==REST kritikák==&lt;br /&gt;
* CRUD műveleteken kívül másra nem alkalmas&lt;br /&gt;
* Nincs interfészleíró (ami leírja a műveleteket és a paraméterek típusát (szemantikát nem, azaz kliens stub -&amp;gt; szerver skeleton generálás))&lt;br /&gt;
* Túl sok belső részletet elárul (igen, mert szemlélet más: műveletközpontú helyett adatközpontú)&lt;br /&gt;
* Tervezési guideline-ok hiánya&lt;br /&gt;
* Middleware funkciók hiánya (nincs tranzakció kezelés, meg nem biztos hogy jönn a HTTP 200 OK válasz)&lt;br /&gt;
* Nincs publish-subscribe (pl egy RSS proginak) ill. aszinkron kommunikáció (ha a szerver hosszú müveletet végez, megoldásként HTTP 202 Accepted)&lt;br /&gt;
&lt;br /&gt;
==JAX-RS==&lt;br /&gt;
* JAX-RS: Java API for RESTful Web Services&lt;br /&gt;
* Java osztályok leképzése REST erőforrásokra (annotációk)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Számológép példa revisited&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
@Path(&amp;quot;calculator&amp;quot;)&amp;lt;br /&amp;gt;&lt;br /&gt;
public class Calculator{&amp;lt;br /&amp;gt;&lt;br /&gt;
     @GET&amp;lt;br /&amp;gt;&lt;br /&gt;
     @Path(&amp;quot;add&amp;quot;)&amp;lt;br /&amp;gt;&lt;br /&gt;
     @Produces(&amp;quot;text/plain&amp;quot;)&amp;lt;br /&amp;gt;&lt;br /&gt;
     public double add(@QueryParam(&amp;quot;left&amp;quot;) double left, @QueryParam(&amp;quot;right&amp;quot;) double right) { return left+right; }&amp;lt;br /&amp;gt;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&amp;quot;Lehetséges visszatérési értékek&amp;quot;&amp;quot;&lt;br /&gt;
* void, null (204 no content status code)&lt;br /&gt;
* Response&lt;br /&gt;
* GenericEntity&lt;br /&gt;
* egyébb&lt;br /&gt;
&lt;br /&gt;
* Stringet támogat, double-t nem&lt;br /&gt;
** double-re a megoldás a &amp;quot;MessageBodyWriter&amp;quot; implementálása&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&amp;quot;HTTP method annotációk&amp;quot;&amp;quot;: @GET, @POST, @PUT, @DELETE, @HEAD&lt;br /&gt;
&amp;quot;&amp;quot;HTTP content-type annotációk&amp;quot;&amp;quot;: @Consumes, @Produces&lt;br /&gt;
&lt;br /&gt;
= Elosztott technológiák összefoglaló =&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!&amp;amp;nbsp;&lt;br /&gt;
!REST&lt;br /&gt;
!RMI&lt;br /&gt;
!WS&lt;br /&gt;
!CORBA&lt;br /&gt;
|-&lt;br /&gt;
!Különbözö programnyelvek között müködik&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Kommunikációs protokoll&lt;br /&gt;
|HTTP&lt;br /&gt;
|RMI&lt;br /&gt;
|SOAP&lt;br /&gt;
|IIOP&lt;br /&gt;
|-&lt;br /&gt;
!Interfészleíró&lt;br /&gt;
|nincs/WADL&lt;br /&gt;
|Java Interface&lt;br /&gt;
|WSDL&lt;br /&gt;
|IDL&lt;br /&gt;
|-&lt;br /&gt;
!Katalógus&lt;br /&gt;
|JNDI&lt;br /&gt;
|UDDI&lt;br /&gt;
|Naming Service&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
!Elosztott&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Szakványos&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Széles körü támogatás&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Egyszerü&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|nem&lt;br /&gt;
|-&lt;br /&gt;
!Egyszerü API&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|-&lt;br /&gt;
!Gyors&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Biztonság, tranzakciók&lt;br /&gt;
|nem&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;/div&gt;</summary>
		<author><name>Tank</name></author>
	</entry>
	<entry>
		<id>https://vik.wiki/index.php?title=8._REST_(2012)&amp;diff=166400</id>
		<title>8. REST (2012)</title>
		<link rel="alternate" type="text/html" href="https://vik.wiki/index.php?title=8._REST_(2012)&amp;diff=166400"/>
		<updated>2013-05-26T18:24:37Z</updated>

		<summary type="html">&lt;p&gt;Tank: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Csonk}}&lt;br /&gt;
&lt;br /&gt;
=HTTP=&lt;br /&gt;
* HTTP GET&lt;br /&gt;
[[Fájl:HTTP_GET.png]]&lt;br /&gt;
* HTTP POST&lt;br /&gt;
[[Fájl:HTTP_POST.png]]&lt;br /&gt;
&lt;br /&gt;
=REST=&lt;br /&gt;
REST = Representational State Transfer&lt;br /&gt;
&lt;br /&gt;
==RESTful HTTP==&lt;br /&gt;
* HTTP protokoll kibövítése: GET, POST, PUT, DELETE&lt;br /&gt;
* Bemenö paraméterek: URL része, URL query string, POST paraméter, HTTP body&lt;br /&gt;
* Visszatérési érték: HTTP body&lt;br /&gt;
* nagyon egyszerü: böngészőből is tesztelhetö&lt;br /&gt;
&lt;br /&gt;
==REST alapelvei==&lt;br /&gt;
* Minden eröforráshoz azonosító rendelése (URI, URN, URL a jó, mert egyértelmű, könnyű feloldani, független a mögöttes technológiától)&lt;br /&gt;
* Erőforrások lehetnek: doksik, adatok (szamitas eredmenye), szolgáltatások (SOAP, metaadatok, stb), fogalmak&lt;br /&gt;
* Dolgok összekapcsolása (jó URL cimet kell választani)&lt;br /&gt;
* CRUD müveletek használata (Create, Read, Update, Delete)&lt;br /&gt;
* Állapotmentes kommunikáció&lt;br /&gt;
&lt;br /&gt;
==Többféle adatreprezentáció==&lt;br /&gt;
*HTML (emberek szamara) vagy XML, JSON, stb. gépek számára&lt;br /&gt;
*változhat a struktúra&lt;br /&gt;
&lt;br /&gt;
==Állapotmentes kommunikáció==&lt;br /&gt;
A REST önmagában állapotmentes&lt;br /&gt;
*De az alkalmazásnak lehet állapota (kliens oldalon, erőforrásban tárolva)&lt;br /&gt;
*Skálázhatósági előnyök emiatt (nincs session, felcserélhető szerverek)&lt;br /&gt;
&lt;br /&gt;
==Műveletek erőforrásokon==&lt;br /&gt;
[[Fájl:muv_eroforr.png]]&lt;br /&gt;
* &#039;&#039;&#039;safe:&#039;&#039;&#039; a kliens olyan műveletet hajt végre, ami csak lekérdez, és nem tehető felelőssé az okozott mellékhatásokért&lt;br /&gt;
* &#039;&#039;&#039;idempotent&#039;&#039;&#039;: a művelet ismételt végrehajtása ugyanazt az eredményt produkálja&lt;br /&gt;
* &#039;&#039;&#039;cacheable&#039;&#039;&#039;: akár a proxy vagy a gateway is cachelheti a szerver kapcsolódása nélkül. Képek esetén ajánlatos a long live beállitása.&lt;br /&gt;
&lt;br /&gt;
==REST kritikák==&lt;br /&gt;
* CRUD műveleteken kívül másra nem alkalmas&lt;br /&gt;
* Nincs interfészleíró (ami leírja a műveleteket és a paraméterek típusát (szemantikát nem, azaz kliens stub -&amp;gt; szerver skeleton generálás))&lt;br /&gt;
* Túl sok belső részletet elárul (igen, mert szemlélet más: műveletközpontú helyett adatközpontú)&lt;br /&gt;
* Tervezési guideline-ok hiánya&lt;br /&gt;
* Middleware funkciók hiánya (nincs tranzakció kezelés, meg nem biztos hogy jönn a HTTP 200 OK válasz)&lt;br /&gt;
* Nincs publish-subscribe (pl egy RSS proginak) ill. aszinkron kommunikáció (ha a szerver hosszú müveletet végez, megoldásként HTTP 202 Accepted)&lt;br /&gt;
&lt;br /&gt;
==JAX-RS==&lt;br /&gt;
* JAX-RS: Java API for RESTful Web Services&lt;br /&gt;
* Java osztályok leképzése REST erőforrásokra (annotációk)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Számológép példa revisited&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
@Path(&amp;quot;calculator&amp;quot;)&amp;lt;br /&amp;gt;&lt;br /&gt;
public class Calculator{&amp;lt;br /&amp;gt;&lt;br /&gt;
     @GET&amp;lt;br /&amp;gt;&lt;br /&gt;
     @Path(&amp;quot;add&amp;quot;)&amp;lt;br /&amp;gt;&lt;br /&gt;
     @Produces(&amp;quot;text/plain&amp;quot;)&amp;lt;br /&amp;gt;&lt;br /&gt;
     public double add(@QueryParam(&amp;quot;left&amp;quot;) double left, @QueryParam(&amp;quot;right&amp;quot;) double right) { return left+right; }&amp;lt;br /&amp;gt;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&amp;quot;Lehetséges visszatérési értékek&amp;quot;&amp;quot;&lt;br /&gt;
* void, null (204 no content status code)&lt;br /&gt;
* Response&lt;br /&gt;
* GenericEntity&lt;br /&gt;
* egyébb&lt;br /&gt;
&lt;br /&gt;
* Stringet támogat, double-t nem&lt;br /&gt;
** double-re a megoldás a &amp;quot;MessageBodyWriter&amp;quot; implementálása&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&amp;quot;HTTP method annotációk&amp;quot;&amp;quot;: @GET, @POST, @PUT, @DELETE, @HEAD&lt;br /&gt;
HTTP content-type annotációk&amp;quot;&amp;quot;: @Consumes, @Produces&lt;br /&gt;
&lt;br /&gt;
= Elosztott technológiák összefoglaló =&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!&amp;amp;nbsp;&lt;br /&gt;
!REST&lt;br /&gt;
!RMI&lt;br /&gt;
!WS&lt;br /&gt;
!CORBA&lt;br /&gt;
|-&lt;br /&gt;
!Különbözö programnyelvek között müködik&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Kommunikációs protokoll&lt;br /&gt;
|HTTP&lt;br /&gt;
|RMI&lt;br /&gt;
|SOAP&lt;br /&gt;
|IIOP&lt;br /&gt;
|-&lt;br /&gt;
!Interfészleíró&lt;br /&gt;
|nincs/WADL&lt;br /&gt;
|Java Interface&lt;br /&gt;
|WSDL&lt;br /&gt;
|IDL&lt;br /&gt;
|-&lt;br /&gt;
!Katalógus&lt;br /&gt;
|JNDI&lt;br /&gt;
|UDDI&lt;br /&gt;
|Naming Service&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
!Elosztott&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Szakványos&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Széles körü támogatás&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Egyszerü&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|nem&lt;br /&gt;
|-&lt;br /&gt;
!Egyszerü API&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|-&lt;br /&gt;
!Gyors&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Biztonság, tranzakciók&lt;br /&gt;
|nem&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;/div&gt;</summary>
		<author><name>Tank</name></author>
	</entry>
	<entry>
		<id>https://vik.wiki/index.php?title=8._REST_(2012)&amp;diff=166399</id>
		<title>8. REST (2012)</title>
		<link rel="alternate" type="text/html" href="https://vik.wiki/index.php?title=8._REST_(2012)&amp;diff=166399"/>
		<updated>2013-05-26T18:18:01Z</updated>

		<summary type="html">&lt;p&gt;Tank: /* JAX-RS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Csonk}}&lt;br /&gt;
&lt;br /&gt;
=HTTP=&lt;br /&gt;
* HTTP GET&lt;br /&gt;
[[Fájl:HTTP_GET.png]]&lt;br /&gt;
* HTTP POST&lt;br /&gt;
[[Fájl:HTTP_POST.png]]&lt;br /&gt;
&lt;br /&gt;
=REST=&lt;br /&gt;
REST = Representational State Transfer&lt;br /&gt;
&lt;br /&gt;
==RESTful HTTP==&lt;br /&gt;
* HTTP protokoll kibövítése: GET, POST, PUT, DELETE&lt;br /&gt;
* Bemenö paraméterek: URL része, URL query string, POST paraméter, HTTP body&lt;br /&gt;
* Visszatérési érték: HTTP body&lt;br /&gt;
* nagyon egyszerü: böngészőből is tesztelhetö&lt;br /&gt;
&lt;br /&gt;
==REST alapelvei==&lt;br /&gt;
* Minden eröforráshoz azonosító rendelése (URI, URN, URL a jó, mert egyértelmű, könnyű feloldani, független a mögöttes technológiától)&lt;br /&gt;
* Erőforrások lehetnek: doksik, adatok (szamitas eredmenye), szolgáltatások (SOAP, metaadatok, stb), fogalmak&lt;br /&gt;
* Dolgok összekapcsolása (jó URL cimet kell választani)&lt;br /&gt;
* CRUD müveletek használata (Create, Read, Update, Delete)&lt;br /&gt;
* Állapotmentes kommunikáció&lt;br /&gt;
&lt;br /&gt;
==Többféle adatreprezentáció==&lt;br /&gt;
*HTML (emberek szamara) vagy XML, JSON, stb. gépek számára&lt;br /&gt;
*változhat a struktúra&lt;br /&gt;
&lt;br /&gt;
==Állapotmentes kommunikáció==&lt;br /&gt;
A REST önmagában állapotmentes&lt;br /&gt;
*De az alkalmazásnak lehet állapota (kliens oldalon, erőforrásban tárolva)&lt;br /&gt;
*Skálázhatósági előnyök emiatt (nincs session, felcserélhető szerverek)&lt;br /&gt;
&lt;br /&gt;
==Műveletek erőforrásokon==&lt;br /&gt;
[[Fájl:muv_eroforr.png]]&lt;br /&gt;
* &#039;&#039;&#039;safe:&#039;&#039;&#039; a kliens olyan műveletet hajt végre, ami csak lekérdez, és nem tehető felelőssé az okozott mellékhatásokért&lt;br /&gt;
* &#039;&#039;&#039;idempotent&#039;&#039;&#039;: a művelet ismételt végrehajtása ugyanazt az eredményt produkálja&lt;br /&gt;
* &#039;&#039;&#039;cacheable&#039;&#039;&#039;: akár a proxy vagy a gateway is cachelheti a szerver kapcsolódása nélkül. Képek esetén ajánlatos a long live beállitása.&lt;br /&gt;
&lt;br /&gt;
==REST kritikák==&lt;br /&gt;
* CRUD műveleteken kívül másra nem alkalmas&lt;br /&gt;
* Nincs interfészleíró (ami leírja a műveleteket és a paraméterek típusát (szemantikát nem, azaz kliens stub -&amp;gt; szerver skeleton generálás))&lt;br /&gt;
* Túl sok belső részletet elárul (igen, mert szemlélet más: műveletközpontú helyett adatközpontú)&lt;br /&gt;
* Tervezési guideline-ok hiánya&lt;br /&gt;
* Middleware funkciók hiánya (nincs tranzakció kezelés, meg nem biztos hogy jönn a HTTP 200 OK válasz)&lt;br /&gt;
* Nincs publish-subscribe (pl egy RSS proginak) ill. aszinkron kommunikáció (ha a szerver hosszú müveletet végez, megoldásként HTTP 202 Accepted)&lt;br /&gt;
&lt;br /&gt;
==JAX-RS==&lt;br /&gt;
* JAX-RS: Java API for RESTful Web Services&lt;br /&gt;
* Java osztályok leképzése REST erőforrásokra (annotációk)&lt;br /&gt;
&lt;br /&gt;
==Számológép példa revisited==&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
@Path(&amp;quot;calculator&amp;quot;)&amp;lt;br /&amp;gt;&lt;br /&gt;
public class Calculator{&amp;lt;br /&amp;gt;&lt;br /&gt;
     @GET&amp;lt;br /&amp;gt;&lt;br /&gt;
     @Path(&amp;quot;add&amp;quot;)&amp;lt;br /&amp;gt;&lt;br /&gt;
     @Produces(&amp;quot;text/plain&amp;quot;)&amp;lt;br /&amp;gt;&lt;br /&gt;
     public double add(@QueryParam(&amp;quot;left&amp;quot;) double left, @QueryParam(&amp;quot;right&amp;quot;) double right) { return left+right; }&amp;lt;br /&amp;gt;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Elosztott technológiák összefoglaló =&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!&amp;amp;nbsp;&lt;br /&gt;
!REST&lt;br /&gt;
!RMI&lt;br /&gt;
!WS&lt;br /&gt;
!CORBA&lt;br /&gt;
|-&lt;br /&gt;
!Különbözö programnyelvek között müködik&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Kommunikációs protokoll&lt;br /&gt;
|HTTP&lt;br /&gt;
|RMI&lt;br /&gt;
|SOAP&lt;br /&gt;
|IIOP&lt;br /&gt;
|-&lt;br /&gt;
!Interfészleíró&lt;br /&gt;
|nincs/WADL&lt;br /&gt;
|Java Interface&lt;br /&gt;
|WSDL&lt;br /&gt;
|IDL&lt;br /&gt;
|-&lt;br /&gt;
!Katalógus&lt;br /&gt;
|JNDI&lt;br /&gt;
|UDDI&lt;br /&gt;
|Naming Service&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
!Elosztott&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Szakványos&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Széles körü támogatás&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Egyszerü&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|nem&lt;br /&gt;
|-&lt;br /&gt;
!Egyszerü API&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|-&lt;br /&gt;
!Gyors&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Biztonság, tranzakciók&lt;br /&gt;
|nem&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;/div&gt;</summary>
		<author><name>Tank</name></author>
	</entry>
	<entry>
		<id>https://vik.wiki/index.php?title=8._REST_(2012)&amp;diff=166398</id>
		<title>8. REST (2012)</title>
		<link rel="alternate" type="text/html" href="https://vik.wiki/index.php?title=8._REST_(2012)&amp;diff=166398"/>
		<updated>2013-05-26T18:17:21Z</updated>

		<summary type="html">&lt;p&gt;Tank: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Csonk}}&lt;br /&gt;
&lt;br /&gt;
=HTTP=&lt;br /&gt;
* HTTP GET&lt;br /&gt;
[[Fájl:HTTP_GET.png]]&lt;br /&gt;
* HTTP POST&lt;br /&gt;
[[Fájl:HTTP_POST.png]]&lt;br /&gt;
&lt;br /&gt;
=REST=&lt;br /&gt;
REST = Representational State Transfer&lt;br /&gt;
&lt;br /&gt;
==RESTful HTTP==&lt;br /&gt;
* HTTP protokoll kibövítése: GET, POST, PUT, DELETE&lt;br /&gt;
* Bemenö paraméterek: URL része, URL query string, POST paraméter, HTTP body&lt;br /&gt;
* Visszatérési érték: HTTP body&lt;br /&gt;
* nagyon egyszerü: böngészőből is tesztelhetö&lt;br /&gt;
&lt;br /&gt;
==REST alapelvei==&lt;br /&gt;
* Minden eröforráshoz azonosító rendelése (URI, URN, URL a jó, mert egyértelmű, könnyű feloldani, független a mögöttes technológiától)&lt;br /&gt;
* Erőforrások lehetnek: doksik, adatok (szamitas eredmenye), szolgáltatások (SOAP, metaadatok, stb), fogalmak&lt;br /&gt;
* Dolgok összekapcsolása (jó URL cimet kell választani)&lt;br /&gt;
* CRUD müveletek használata (Create, Read, Update, Delete)&lt;br /&gt;
* Állapotmentes kommunikáció&lt;br /&gt;
&lt;br /&gt;
==Többféle adatreprezentáció==&lt;br /&gt;
*HTML (emberek szamara) vagy XML, JSON, stb. gépek számára&lt;br /&gt;
*változhat a struktúra&lt;br /&gt;
&lt;br /&gt;
==Állapotmentes kommunikáció==&lt;br /&gt;
A REST önmagában állapotmentes&lt;br /&gt;
*De az alkalmazásnak lehet állapota (kliens oldalon, erőforrásban tárolva)&lt;br /&gt;
*Skálázhatósági előnyök emiatt (nincs session, felcserélhető szerverek)&lt;br /&gt;
&lt;br /&gt;
==Műveletek erőforrásokon==&lt;br /&gt;
[[Fájl:muv_eroforr.png]]&lt;br /&gt;
* &#039;&#039;&#039;safe:&#039;&#039;&#039; a kliens olyan műveletet hajt végre, ami csak lekérdez, és nem tehető felelőssé az okozott mellékhatásokért&lt;br /&gt;
* &#039;&#039;&#039;idempotent&#039;&#039;&#039;: a művelet ismételt végrehajtása ugyanazt az eredményt produkálja&lt;br /&gt;
* &#039;&#039;&#039;cacheable&#039;&#039;&#039;: akár a proxy vagy a gateway is cachelheti a szerver kapcsolódása nélkül. Képek esetén ajánlatos a long live beállitása.&lt;br /&gt;
&lt;br /&gt;
==REST kritikák==&lt;br /&gt;
* CRUD műveleteken kívül másra nem alkalmas&lt;br /&gt;
* Nincs interfészleíró (ami leírja a műveleteket és a paraméterek típusát (szemantikát nem, azaz kliens stub -&amp;gt; szerver skeleton generálás))&lt;br /&gt;
* Túl sok belső részletet elárul (igen, mert szemlélet más: műveletközpontú helyett adatközpontú)&lt;br /&gt;
* Tervezési guideline-ok hiánya&lt;br /&gt;
* Middleware funkciók hiánya (nincs tranzakció kezelés, meg nem biztos hogy jönn a HTTP 200 OK válasz)&lt;br /&gt;
* Nincs publish-subscribe (pl egy RSS proginak) ill. aszinkron kommunikáció (ha a szerver hosszú müveletet végez, megoldásként HTTP 202 Accepted)&lt;br /&gt;
&lt;br /&gt;
==JAX-RS==&lt;br /&gt;
* JAX-RS: Java API for RESTful Web Services&lt;br /&gt;
* Java osztályok leképzése REST erőforrásokra (annotációk)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Számológép példa revisited&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
@Path(&amp;quot;calculator&amp;quot;)&amp;lt;br /&amp;gt;&lt;br /&gt;
public class Calculator{&amp;lt;br /&amp;gt;&lt;br /&gt;
     @GET&amp;lt;br /&amp;gt;&lt;br /&gt;
     @Path(&amp;quot;add&amp;quot;)&amp;lt;br /&amp;gt;&lt;br /&gt;
     @Produces(&amp;quot;text/plain&amp;quot;)&amp;lt;br /&amp;gt;&lt;br /&gt;
     public double add(@QueryParam(&amp;quot;left&amp;quot;) double left, @QueryParam(&amp;quot;right&amp;quot;) double right) { return left+right; }&amp;lt;br /&amp;gt;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
= Elosztott technológiák összefoglaló =&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!&amp;amp;nbsp;&lt;br /&gt;
!REST&lt;br /&gt;
!RMI&lt;br /&gt;
!WS&lt;br /&gt;
!CORBA&lt;br /&gt;
|-&lt;br /&gt;
!Különbözö programnyelvek között müködik&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Kommunikációs protokoll&lt;br /&gt;
|HTTP&lt;br /&gt;
|RMI&lt;br /&gt;
|SOAP&lt;br /&gt;
|IIOP&lt;br /&gt;
|-&lt;br /&gt;
!Interfészleíró&lt;br /&gt;
|nincs/WADL&lt;br /&gt;
|Java Interface&lt;br /&gt;
|WSDL&lt;br /&gt;
|IDL&lt;br /&gt;
|-&lt;br /&gt;
!Katalógus&lt;br /&gt;
|JNDI&lt;br /&gt;
|UDDI&lt;br /&gt;
|Naming Service&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
!Elosztott&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Szakványos&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Széles körü támogatás&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Egyszerü&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|nem&lt;br /&gt;
|-&lt;br /&gt;
!Egyszerü API&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|-&lt;br /&gt;
!Gyors&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Biztonság, tranzakciók&lt;br /&gt;
|nem&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;/div&gt;</summary>
		<author><name>Tank</name></author>
	</entry>
	<entry>
		<id>https://vik.wiki/index.php?title=8._REST_(2012)&amp;diff=166397</id>
		<title>8. REST (2012)</title>
		<link rel="alternate" type="text/html" href="https://vik.wiki/index.php?title=8._REST_(2012)&amp;diff=166397"/>
		<updated>2013-05-26T18:15:04Z</updated>

		<summary type="html">&lt;p&gt;Tank: /* JAX-RS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Csonk}}&lt;br /&gt;
&lt;br /&gt;
=HTTP=&lt;br /&gt;
* HTTP GET&lt;br /&gt;
[[Fájl:HTTP_GET.png]]&lt;br /&gt;
* HTTP POST&lt;br /&gt;
[[Fájl:HTTP_POST.png]]&lt;br /&gt;
&lt;br /&gt;
=REST=&lt;br /&gt;
REST = Representational State Transfer&lt;br /&gt;
&lt;br /&gt;
==RESTful HTTP==&lt;br /&gt;
* HTTP protokoll kibövítése: GET, POST, PUT, DELETE&lt;br /&gt;
* Bemenö paraméterek: URL része, URL query string, POST paraméter, HTTP body&lt;br /&gt;
* Visszatérési érték: HTTP body&lt;br /&gt;
* nagyon egyszerü: böngészőből is tesztelhetö&lt;br /&gt;
&lt;br /&gt;
==REST alapelvei==&lt;br /&gt;
* Minden eröforráshoz azonosító rendelése (URI, URN, URL a jó, mert egyértelmű, könnyű feloldani, független a mögöttes technológiától)&lt;br /&gt;
* Erőforrások lehetnek: doksik, adatok (szamitas eredmenye), szolgáltatások (SOAP, metaadatok, stb), fogalmak&lt;br /&gt;
* Dolgok összekapcsolása (jó URL cimet kell választani)&lt;br /&gt;
* CRUD müveletek használata (Create, Read, Update, Delete)&lt;br /&gt;
* Állapotmentes kommunikáció&lt;br /&gt;
&lt;br /&gt;
==Többféle adatreprezentáció==&lt;br /&gt;
*HTML (emberek szamara) vagy XML, JSON, stb. gépek számára&lt;br /&gt;
*változhat a struktúra&lt;br /&gt;
&lt;br /&gt;
==Állapotmentes kommunikáció==&lt;br /&gt;
A REST önmagában állapotmentes&lt;br /&gt;
*De az alkalmazásnak lehet állapota (kliens oldalon, erőforrásban tárolva)&lt;br /&gt;
*Skálázhatósági előnyök emiatt (nincs session, felcserélhető szerverek)&lt;br /&gt;
&lt;br /&gt;
==Műveletek erőforrásokon==&lt;br /&gt;
[[Fájl:muv_eroforr.png]]&lt;br /&gt;
* &#039;&#039;&#039;safe:&#039;&#039;&#039; a kliens olyan műveletet hajt végre, ami csak lekérdez, és nem tehető felelőssé az okozott mellékhatásokért&lt;br /&gt;
* &#039;&#039;&#039;idempotent&#039;&#039;&#039;: a művelet ismételt végrehajtása ugyanazt az eredményt produkálja&lt;br /&gt;
* &#039;&#039;&#039;cacheable&#039;&#039;&#039;: akár a proxy vagy a gateway is cachelheti a szerver kapcsolódása nélkül. Képek esetén ajánlatos a long live beállitása.&lt;br /&gt;
&lt;br /&gt;
==REST kritikák==&lt;br /&gt;
* CRUD műveleteken kívül másra nem alkalmas&lt;br /&gt;
* Nincs interfészleíró (ami leírja a műveleteket és a paraméterek típusát (szemantikát nem, azaz kliens stub -&amp;gt; szerver skeleton generálás))&lt;br /&gt;
* Túl sok belső részletet elárul (igen, mert szemlélet más: műveletközpontú helyett adatközpontú)&lt;br /&gt;
* Tervezési guideline-ok hiánya&lt;br /&gt;
* Middleware funkciók hiánya (nincs tranzakció kezelés, meg nem biztos hogy jönn a HTTP 200 OK válasz)&lt;br /&gt;
* Nincs publish-subscribe (pl egy RSS proginak) ill. aszinkron kommunikáció (ha a szerver hosszú müveletet végez, megoldásként HTTP 202 Accepted)&lt;br /&gt;
&lt;br /&gt;
==JAX-RS==&lt;br /&gt;
* JAX-RS: Java API for RESTful Web Services&lt;br /&gt;
* Java osztályok leképzése REST erőforrásokra (annotációk)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Számológép példa revisited&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
@Path(&amp;quot;calculator&amp;quot;)&amp;lt;br /&amp;gt;&lt;br /&gt;
public class Calculator&amp;lt;br /&amp;gt;&lt;br /&gt;
     @GET&amp;lt;br /&amp;gt;&lt;br /&gt;
     @Path(&amp;quot;add&amp;quot;)&amp;lt;br /&amp;gt;&lt;br /&gt;
     @Produces(&amp;quot;text/plain&amp;quot;)&amp;lt;br /&amp;gt;&lt;br /&gt;
     public double add(@QueryParam(&amp;quot;left&amp;quot;) double left, @QueryParam(&amp;quot;right&amp;quot;) double right) { return left+right; }&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Elosztott technológiák összefoglaló =&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!&amp;amp;nbsp;&lt;br /&gt;
!REST&lt;br /&gt;
!RMI&lt;br /&gt;
!WS&lt;br /&gt;
!CORBA&lt;br /&gt;
|-&lt;br /&gt;
!Különbözö programnyelvek között müködik&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Kommunikációs protokoll&lt;br /&gt;
|HTTP&lt;br /&gt;
|RMI&lt;br /&gt;
|SOAP&lt;br /&gt;
|IIOP&lt;br /&gt;
|-&lt;br /&gt;
!Interfészleíró&lt;br /&gt;
|nincs/WADL&lt;br /&gt;
|Java Interface&lt;br /&gt;
|WSDL&lt;br /&gt;
|IDL&lt;br /&gt;
|-&lt;br /&gt;
!Katalógus&lt;br /&gt;
|JNDI&lt;br /&gt;
|UDDI&lt;br /&gt;
|Naming Service&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
!Elosztott&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Szakványos&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Széles körü támogatás&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Egyszerü&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|nem&lt;br /&gt;
|-&lt;br /&gt;
!Egyszerü API&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|-&lt;br /&gt;
!Gyors&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Biztonság, tranzakciók&lt;br /&gt;
|nem&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;/div&gt;</summary>
		<author><name>Tank</name></author>
	</entry>
	<entry>
		<id>https://vik.wiki/index.php?title=8._REST_(2012)&amp;diff=166396</id>
		<title>8. REST (2012)</title>
		<link rel="alternate" type="text/html" href="https://vik.wiki/index.php?title=8._REST_(2012)&amp;diff=166396"/>
		<updated>2013-05-26T18:13:02Z</updated>

		<summary type="html">&lt;p&gt;Tank: /* JAX-RS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Csonk}}&lt;br /&gt;
&lt;br /&gt;
=HTTP=&lt;br /&gt;
* HTTP GET&lt;br /&gt;
[[Fájl:HTTP_GET.png]]&lt;br /&gt;
* HTTP POST&lt;br /&gt;
[[Fájl:HTTP_POST.png]]&lt;br /&gt;
&lt;br /&gt;
=REST=&lt;br /&gt;
REST = Representational State Transfer&lt;br /&gt;
&lt;br /&gt;
==RESTful HTTP==&lt;br /&gt;
* HTTP protokoll kibövítése: GET, POST, PUT, DELETE&lt;br /&gt;
* Bemenö paraméterek: URL része, URL query string, POST paraméter, HTTP body&lt;br /&gt;
* Visszatérési érték: HTTP body&lt;br /&gt;
* nagyon egyszerü: böngészőből is tesztelhetö&lt;br /&gt;
&lt;br /&gt;
==REST alapelvei==&lt;br /&gt;
* Minden eröforráshoz azonosító rendelése (URI, URN, URL a jó, mert egyértelmű, könnyű feloldani, független a mögöttes technológiától)&lt;br /&gt;
* Erőforrások lehetnek: doksik, adatok (szamitas eredmenye), szolgáltatások (SOAP, metaadatok, stb), fogalmak&lt;br /&gt;
* Dolgok összekapcsolása (jó URL cimet kell választani)&lt;br /&gt;
* CRUD müveletek használata (Create, Read, Update, Delete)&lt;br /&gt;
* Állapotmentes kommunikáció&lt;br /&gt;
&lt;br /&gt;
==Többféle adatreprezentáció==&lt;br /&gt;
*HTML (emberek szamara) vagy XML, JSON, stb. gépek számára&lt;br /&gt;
*változhat a struktúra&lt;br /&gt;
&lt;br /&gt;
==Állapotmentes kommunikáció==&lt;br /&gt;
A REST önmagában állapotmentes&lt;br /&gt;
*De az alkalmazásnak lehet állapota (kliens oldalon, erőforrásban tárolva)&lt;br /&gt;
*Skálázhatósági előnyök emiatt (nincs session, felcserélhető szerverek)&lt;br /&gt;
&lt;br /&gt;
==Műveletek erőforrásokon==&lt;br /&gt;
[[Fájl:muv_eroforr.png]]&lt;br /&gt;
* &#039;&#039;&#039;safe:&#039;&#039;&#039; a kliens olyan műveletet hajt végre, ami csak lekérdez, és nem tehető felelőssé az okozott mellékhatásokért&lt;br /&gt;
* &#039;&#039;&#039;idempotent&#039;&#039;&#039;: a művelet ismételt végrehajtása ugyanazt az eredményt produkálja&lt;br /&gt;
* &#039;&#039;&#039;cacheable&#039;&#039;&#039;: akár a proxy vagy a gateway is cachelheti a szerver kapcsolódása nélkül. Képek esetén ajánlatos a long live beállitása.&lt;br /&gt;
&lt;br /&gt;
==REST kritikák==&lt;br /&gt;
* CRUD műveleteken kívül másra nem alkalmas&lt;br /&gt;
* Nincs interfészleíró (ami leírja a műveleteket és a paraméterek típusát (szemantikát nem, azaz kliens stub -&amp;gt; szerver skeleton generálás))&lt;br /&gt;
* Túl sok belső részletet elárul (igen, mert szemlélet más: műveletközpontú helyett adatközpontú)&lt;br /&gt;
* Tervezési guideline-ok hiánya&lt;br /&gt;
* Middleware funkciók hiánya (nincs tranzakció kezelés, meg nem biztos hogy jönn a HTTP 200 OK válasz)&lt;br /&gt;
* Nincs publish-subscribe (pl egy RSS proginak) ill. aszinkron kommunikáció (ha a szerver hosszú müveletet végez, megoldásként HTTP 202 Accepted)&lt;br /&gt;
&lt;br /&gt;
==JAX-RS==&lt;br /&gt;
* JAX-RS: Java API for RESTful Web Services&lt;br /&gt;
* Java osztályok leképzése REST erőforrásokra (annotációk)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Számológép példa revisited&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
@Path(&amp;quot;calculator&amp;quot;)&amp;lt;br /&amp;gt;&lt;br /&gt;
public class Calculator&amp;lt;br /&amp;gt;&lt;br /&gt;
{&amp;lt;br /&amp;gt;&lt;br /&gt;
     @GET&amp;lt;br /&amp;gt;&lt;br /&gt;
     @Path(&amp;quot;add&amp;quot;)&amp;lt;br /&amp;gt;&lt;br /&gt;
     @Produces(&amp;quot;text/plain&amp;quot;)&amp;lt;br /&amp;gt;&lt;br /&gt;
     public double add(@QueryParam(&amp;quot;left&amp;quot;) double left, @QueryParam(&amp;quot;right&amp;quot;) double right) { return left+right; }&amp;lt;br /&amp;gt;&lt;br /&gt;
}&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Elosztott technológiák összefoglaló =&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!&amp;amp;nbsp;&lt;br /&gt;
!REST&lt;br /&gt;
!RMI&lt;br /&gt;
!WS&lt;br /&gt;
!CORBA&lt;br /&gt;
|-&lt;br /&gt;
!Különbözö programnyelvek között müködik&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Kommunikációs protokoll&lt;br /&gt;
|HTTP&lt;br /&gt;
|RMI&lt;br /&gt;
|SOAP&lt;br /&gt;
|IIOP&lt;br /&gt;
|-&lt;br /&gt;
!Interfészleíró&lt;br /&gt;
|nincs/WADL&lt;br /&gt;
|Java Interface&lt;br /&gt;
|WSDL&lt;br /&gt;
|IDL&lt;br /&gt;
|-&lt;br /&gt;
!Katalógus&lt;br /&gt;
|JNDI&lt;br /&gt;
|UDDI&lt;br /&gt;
|Naming Service&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
!Elosztott&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Szakványos&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Széles körü támogatás&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Egyszerü&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|nem&lt;br /&gt;
|-&lt;br /&gt;
!Egyszerü API&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|-&lt;br /&gt;
!Gyors&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Biztonság, tranzakciók&lt;br /&gt;
|nem&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;/div&gt;</summary>
		<author><name>Tank</name></author>
	</entry>
	<entry>
		<id>https://vik.wiki/index.php?title=8._REST_(2012)&amp;diff=166395</id>
		<title>8. REST (2012)</title>
		<link rel="alternate" type="text/html" href="https://vik.wiki/index.php?title=8._REST_(2012)&amp;diff=166395"/>
		<updated>2013-05-26T18:12:24Z</updated>

		<summary type="html">&lt;p&gt;Tank: /* JAX-RS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Csonk}}&lt;br /&gt;
&lt;br /&gt;
=HTTP=&lt;br /&gt;
* HTTP GET&lt;br /&gt;
[[Fájl:HTTP_GET.png]]&lt;br /&gt;
* HTTP POST&lt;br /&gt;
[[Fájl:HTTP_POST.png]]&lt;br /&gt;
&lt;br /&gt;
=REST=&lt;br /&gt;
REST = Representational State Transfer&lt;br /&gt;
&lt;br /&gt;
==RESTful HTTP==&lt;br /&gt;
* HTTP protokoll kibövítése: GET, POST, PUT, DELETE&lt;br /&gt;
* Bemenö paraméterek: URL része, URL query string, POST paraméter, HTTP body&lt;br /&gt;
* Visszatérési érték: HTTP body&lt;br /&gt;
* nagyon egyszerü: böngészőből is tesztelhetö&lt;br /&gt;
&lt;br /&gt;
==REST alapelvei==&lt;br /&gt;
* Minden eröforráshoz azonosító rendelése (URI, URN, URL a jó, mert egyértelmű, könnyű feloldani, független a mögöttes technológiától)&lt;br /&gt;
* Erőforrások lehetnek: doksik, adatok (szamitas eredmenye), szolgáltatások (SOAP, metaadatok, stb), fogalmak&lt;br /&gt;
* Dolgok összekapcsolása (jó URL cimet kell választani)&lt;br /&gt;
* CRUD müveletek használata (Create, Read, Update, Delete)&lt;br /&gt;
* Állapotmentes kommunikáció&lt;br /&gt;
&lt;br /&gt;
==Többféle adatreprezentáció==&lt;br /&gt;
*HTML (emberek szamara) vagy XML, JSON, stb. gépek számára&lt;br /&gt;
*változhat a struktúra&lt;br /&gt;
&lt;br /&gt;
==Állapotmentes kommunikáció==&lt;br /&gt;
A REST önmagában állapotmentes&lt;br /&gt;
*De az alkalmazásnak lehet állapota (kliens oldalon, erőforrásban tárolva)&lt;br /&gt;
*Skálázhatósági előnyök emiatt (nincs session, felcserélhető szerverek)&lt;br /&gt;
&lt;br /&gt;
==Műveletek erőforrásokon==&lt;br /&gt;
[[Fájl:muv_eroforr.png]]&lt;br /&gt;
* &#039;&#039;&#039;safe:&#039;&#039;&#039; a kliens olyan műveletet hajt végre, ami csak lekérdez, és nem tehető felelőssé az okozott mellékhatásokért&lt;br /&gt;
* &#039;&#039;&#039;idempotent&#039;&#039;&#039;: a művelet ismételt végrehajtása ugyanazt az eredményt produkálja&lt;br /&gt;
* &#039;&#039;&#039;cacheable&#039;&#039;&#039;: akár a proxy vagy a gateway is cachelheti a szerver kapcsolódása nélkül. Képek esetén ajánlatos a long live beállitása.&lt;br /&gt;
&lt;br /&gt;
==REST kritikák==&lt;br /&gt;
* CRUD műveleteken kívül másra nem alkalmas&lt;br /&gt;
* Nincs interfészleíró (ami leírja a műveleteket és a paraméterek típusát (szemantikát nem, azaz kliens stub -&amp;gt; szerver skeleton generálás))&lt;br /&gt;
* Túl sok belső részletet elárul (igen, mert szemlélet más: műveletközpontú helyett adatközpontú)&lt;br /&gt;
* Tervezési guideline-ok hiánya&lt;br /&gt;
* Middleware funkciók hiánya (nincs tranzakció kezelés, meg nem biztos hogy jönn a HTTP 200 OK válasz)&lt;br /&gt;
* Nincs publish-subscribe (pl egy RSS proginak) ill. aszinkron kommunikáció (ha a szerver hosszú müveletet végez, megoldásként HTTP 202 Accepted)&lt;br /&gt;
&lt;br /&gt;
==JAX-RS==&lt;br /&gt;
* JAX-RS: Java API for RESTful Web Services&lt;br /&gt;
* Java osztályok leképzése REST erőforrásokra (annotációk)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Számológép példa revisited&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;import javax.ws.rs.GET;&amp;lt;br /&amp;gt;&lt;br /&gt;
import javax.ws.rs.Path;&amp;lt;br /&amp;gt;&lt;br /&gt;
import javax.ws.rs.Produces;&amp;lt;br /&amp;gt;&lt;br /&gt;
import javax.ws.rs.QueryParam;&amp;lt;br /&amp;gt;&lt;br /&gt;
@Path(&amp;quot;calculator&amp;quot;)&amp;lt;br /&amp;gt;&lt;br /&gt;
public class Calculator&amp;lt;br /&amp;gt;&lt;br /&gt;
{&amp;lt;br /&amp;gt;&lt;br /&gt;
     @GET&amp;lt;br /&amp;gt;&lt;br /&gt;
     @Path(&amp;quot;add&amp;quot;)&amp;lt;br /&amp;gt;&lt;br /&gt;
     @Produces(&amp;quot;text/plain&amp;quot;)&amp;lt;br /&amp;gt;&lt;br /&gt;
     public double add(@QueryParam(&amp;quot;left&amp;quot;) double left, @QueryParam(&amp;quot;right&amp;quot;) double right) { return left+right; }&amp;lt;br /&amp;gt;&lt;br /&gt;
}&amp;lt;br /&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Elosztott technológiák összefoglaló =&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!&amp;amp;nbsp;&lt;br /&gt;
!REST&lt;br /&gt;
!RMI&lt;br /&gt;
!WS&lt;br /&gt;
!CORBA&lt;br /&gt;
|-&lt;br /&gt;
!Különbözö programnyelvek között müködik&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Kommunikációs protokoll&lt;br /&gt;
|HTTP&lt;br /&gt;
|RMI&lt;br /&gt;
|SOAP&lt;br /&gt;
|IIOP&lt;br /&gt;
|-&lt;br /&gt;
!Interfészleíró&lt;br /&gt;
|nincs/WADL&lt;br /&gt;
|Java Interface&lt;br /&gt;
|WSDL&lt;br /&gt;
|IDL&lt;br /&gt;
|-&lt;br /&gt;
!Katalógus&lt;br /&gt;
|JNDI&lt;br /&gt;
|UDDI&lt;br /&gt;
|Naming Service&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
!Elosztott&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Szakványos&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Széles körü támogatás&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Egyszerü&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|nem&lt;br /&gt;
|-&lt;br /&gt;
!Egyszerü API&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|-&lt;br /&gt;
!Gyors&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Biztonság, tranzakciók&lt;br /&gt;
|nem&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;/div&gt;</summary>
		<author><name>Tank</name></author>
	</entry>
	<entry>
		<id>https://vik.wiki/index.php?title=8._REST_(2012)&amp;diff=166394</id>
		<title>8. REST (2012)</title>
		<link rel="alternate" type="text/html" href="https://vik.wiki/index.php?title=8._REST_(2012)&amp;diff=166394"/>
		<updated>2013-05-26T18:11:13Z</updated>

		<summary type="html">&lt;p&gt;Tank: /* JAX-RS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Csonk}}&lt;br /&gt;
&lt;br /&gt;
=HTTP=&lt;br /&gt;
* HTTP GET&lt;br /&gt;
[[Fájl:HTTP_GET.png]]&lt;br /&gt;
* HTTP POST&lt;br /&gt;
[[Fájl:HTTP_POST.png]]&lt;br /&gt;
&lt;br /&gt;
=REST=&lt;br /&gt;
REST = Representational State Transfer&lt;br /&gt;
&lt;br /&gt;
==RESTful HTTP==&lt;br /&gt;
* HTTP protokoll kibövítése: GET, POST, PUT, DELETE&lt;br /&gt;
* Bemenö paraméterek: URL része, URL query string, POST paraméter, HTTP body&lt;br /&gt;
* Visszatérési érték: HTTP body&lt;br /&gt;
* nagyon egyszerü: böngészőből is tesztelhetö&lt;br /&gt;
&lt;br /&gt;
==REST alapelvei==&lt;br /&gt;
* Minden eröforráshoz azonosító rendelése (URI, URN, URL a jó, mert egyértelmű, könnyű feloldani, független a mögöttes technológiától)&lt;br /&gt;
* Erőforrások lehetnek: doksik, adatok (szamitas eredmenye), szolgáltatások (SOAP, metaadatok, stb), fogalmak&lt;br /&gt;
* Dolgok összekapcsolása (jó URL cimet kell választani)&lt;br /&gt;
* CRUD müveletek használata (Create, Read, Update, Delete)&lt;br /&gt;
* Állapotmentes kommunikáció&lt;br /&gt;
&lt;br /&gt;
==Többféle adatreprezentáció==&lt;br /&gt;
*HTML (emberek szamara) vagy XML, JSON, stb. gépek számára&lt;br /&gt;
*változhat a struktúra&lt;br /&gt;
&lt;br /&gt;
==Állapotmentes kommunikáció==&lt;br /&gt;
A REST önmagában állapotmentes&lt;br /&gt;
*De az alkalmazásnak lehet állapota (kliens oldalon, erőforrásban tárolva)&lt;br /&gt;
*Skálázhatósági előnyök emiatt (nincs session, felcserélhető szerverek)&lt;br /&gt;
&lt;br /&gt;
==Műveletek erőforrásokon==&lt;br /&gt;
[[Fájl:muv_eroforr.png]]&lt;br /&gt;
* &#039;&#039;&#039;safe:&#039;&#039;&#039; a kliens olyan műveletet hajt végre, ami csak lekérdez, és nem tehető felelőssé az okozott mellékhatásokért&lt;br /&gt;
* &#039;&#039;&#039;idempotent&#039;&#039;&#039;: a művelet ismételt végrehajtása ugyanazt az eredményt produkálja&lt;br /&gt;
* &#039;&#039;&#039;cacheable&#039;&#039;&#039;: akár a proxy vagy a gateway is cachelheti a szerver kapcsolódása nélkül. Képek esetén ajánlatos a long live beállitása.&lt;br /&gt;
&lt;br /&gt;
==REST kritikák==&lt;br /&gt;
* CRUD műveleteken kívül másra nem alkalmas&lt;br /&gt;
* Nincs interfészleíró (ami leírja a műveleteket és a paraméterek típusát (szemantikát nem, azaz kliens stub -&amp;gt; szerver skeleton generálás))&lt;br /&gt;
* Túl sok belső részletet elárul (igen, mert szemlélet más: műveletközpontú helyett adatközpontú)&lt;br /&gt;
* Tervezési guideline-ok hiánya&lt;br /&gt;
* Middleware funkciók hiánya (nincs tranzakció kezelés, meg nem biztos hogy jönn a HTTP 200 OK válasz)&lt;br /&gt;
* Nincs publish-subscribe (pl egy RSS proginak) ill. aszinkron kommunikáció (ha a szerver hosszú müveletet végez, megoldásként HTTP 202 Accepted)&lt;br /&gt;
&lt;br /&gt;
==JAX-RS==&lt;br /&gt;
* JAX-RS: Java API for RESTful Web Services&lt;br /&gt;
* Java osztályok leképzése REST erőforrásokra (annotációk)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Számológép példa revisited&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;import javax.ws.rs.GET;&lt;br /&gt;
import javax.ws.rs.Path;&lt;br /&gt;
import javax.ws.rs.Produces;&lt;br /&gt;
import javax.ws.rs.QueryParam;&lt;br /&gt;
@Path(&amp;quot;calculator&amp;quot;)&lt;br /&gt;
public class Calculator&lt;br /&gt;
{&lt;br /&gt;
     @GET&lt;br /&gt;
     @Path(&amp;quot;add&amp;quot;)&lt;br /&gt;
     @Produces(&amp;quot;text/plain&amp;quot;)&lt;br /&gt;
     public double add(@QueryParam(&amp;quot;left&amp;quot;) double left, @QueryParam(&amp;quot;right&amp;quot;) double right) { return left+right; }&lt;br /&gt;
}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Elosztott technológiák összefoglaló =&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!&amp;amp;nbsp;&lt;br /&gt;
!REST&lt;br /&gt;
!RMI&lt;br /&gt;
!WS&lt;br /&gt;
!CORBA&lt;br /&gt;
|-&lt;br /&gt;
!Különbözö programnyelvek között müködik&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Kommunikációs protokoll&lt;br /&gt;
|HTTP&lt;br /&gt;
|RMI&lt;br /&gt;
|SOAP&lt;br /&gt;
|IIOP&lt;br /&gt;
|-&lt;br /&gt;
!Interfészleíró&lt;br /&gt;
|nincs/WADL&lt;br /&gt;
|Java Interface&lt;br /&gt;
|WSDL&lt;br /&gt;
|IDL&lt;br /&gt;
|-&lt;br /&gt;
!Katalógus&lt;br /&gt;
|JNDI&lt;br /&gt;
|UDDI&lt;br /&gt;
|Naming Service&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
!Elosztott&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Szakványos&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Széles körü támogatás&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Egyszerü&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|nem&lt;br /&gt;
|-&lt;br /&gt;
!Egyszerü API&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|-&lt;br /&gt;
!Gyors&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Biztonság, tranzakciók&lt;br /&gt;
|nem&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;/div&gt;</summary>
		<author><name>Tank</name></author>
	</entry>
	<entry>
		<id>https://vik.wiki/index.php?title=8._REST_(2012)&amp;diff=166393</id>
		<title>8. REST (2012)</title>
		<link rel="alternate" type="text/html" href="https://vik.wiki/index.php?title=8._REST_(2012)&amp;diff=166393"/>
		<updated>2013-05-26T18:10:19Z</updated>

		<summary type="html">&lt;p&gt;Tank: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Csonk}}&lt;br /&gt;
&lt;br /&gt;
=HTTP=&lt;br /&gt;
* HTTP GET&lt;br /&gt;
[[Fájl:HTTP_GET.png]]&lt;br /&gt;
* HTTP POST&lt;br /&gt;
[[Fájl:HTTP_POST.png]]&lt;br /&gt;
&lt;br /&gt;
=REST=&lt;br /&gt;
REST = Representational State Transfer&lt;br /&gt;
&lt;br /&gt;
==RESTful HTTP==&lt;br /&gt;
* HTTP protokoll kibövítése: GET, POST, PUT, DELETE&lt;br /&gt;
* Bemenö paraméterek: URL része, URL query string, POST paraméter, HTTP body&lt;br /&gt;
* Visszatérési érték: HTTP body&lt;br /&gt;
* nagyon egyszerü: böngészőből is tesztelhetö&lt;br /&gt;
&lt;br /&gt;
==REST alapelvei==&lt;br /&gt;
* Minden eröforráshoz azonosító rendelése (URI, URN, URL a jó, mert egyértelmű, könnyű feloldani, független a mögöttes technológiától)&lt;br /&gt;
* Erőforrások lehetnek: doksik, adatok (szamitas eredmenye), szolgáltatások (SOAP, metaadatok, stb), fogalmak&lt;br /&gt;
* Dolgok összekapcsolása (jó URL cimet kell választani)&lt;br /&gt;
* CRUD müveletek használata (Create, Read, Update, Delete)&lt;br /&gt;
* Állapotmentes kommunikáció&lt;br /&gt;
&lt;br /&gt;
==Többféle adatreprezentáció==&lt;br /&gt;
*HTML (emberek szamara) vagy XML, JSON, stb. gépek számára&lt;br /&gt;
*változhat a struktúra&lt;br /&gt;
&lt;br /&gt;
==Állapotmentes kommunikáció==&lt;br /&gt;
A REST önmagában állapotmentes&lt;br /&gt;
*De az alkalmazásnak lehet állapota (kliens oldalon, erőforrásban tárolva)&lt;br /&gt;
*Skálázhatósági előnyök emiatt (nincs session, felcserélhető szerverek)&lt;br /&gt;
&lt;br /&gt;
==Műveletek erőforrásokon==&lt;br /&gt;
[[Fájl:muv_eroforr.png]]&lt;br /&gt;
* &#039;&#039;&#039;safe:&#039;&#039;&#039; a kliens olyan műveletet hajt végre, ami csak lekérdez, és nem tehető felelőssé az okozott mellékhatásokért&lt;br /&gt;
* &#039;&#039;&#039;idempotent&#039;&#039;&#039;: a művelet ismételt végrehajtása ugyanazt az eredményt produkálja&lt;br /&gt;
* &#039;&#039;&#039;cacheable&#039;&#039;&#039;: akár a proxy vagy a gateway is cachelheti a szerver kapcsolódása nélkül. Képek esetén ajánlatos a long live beállitása.&lt;br /&gt;
&lt;br /&gt;
==REST kritikák==&lt;br /&gt;
* CRUD műveleteken kívül másra nem alkalmas&lt;br /&gt;
* Nincs interfészleíró (ami leírja a műveleteket és a paraméterek típusát (szemantikát nem, azaz kliens stub -&amp;gt; szerver skeleton generálás))&lt;br /&gt;
* Túl sok belső részletet elárul (igen, mert szemlélet más: műveletközpontú helyett adatközpontú)&lt;br /&gt;
* Tervezési guideline-ok hiánya&lt;br /&gt;
* Middleware funkciók hiánya (nincs tranzakció kezelés, meg nem biztos hogy jönn a HTTP 200 OK válasz)&lt;br /&gt;
* Nincs publish-subscribe (pl egy RSS proginak) ill. aszinkron kommunikáció (ha a szerver hosszú müveletet végez, megoldásként HTTP 202 Accepted)&lt;br /&gt;
&lt;br /&gt;
==JAX-RS==&lt;br /&gt;
* JAX-RS: Java API for RESTful Web Services&lt;br /&gt;
* Java osztályok leképzése REST erőforrásokra (annotációk)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Számológép példa revisited&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
import javax.ws.rs.GET;&lt;br /&gt;
import javax.ws.rs.Path;&lt;br /&gt;
import javax.ws.rs.Produces;&lt;br /&gt;
import javax.ws.rs.QueryParam;&lt;br /&gt;
@Path(&amp;quot;calculator&amp;quot;)&lt;br /&gt;
public class Calculator&lt;br /&gt;
{&lt;br /&gt;
     @GET&lt;br /&gt;
     @Path(&amp;quot;add&amp;quot;)&lt;br /&gt;
     @Produces(&amp;quot;text/plain&amp;quot;)&lt;br /&gt;
     public double add(@QueryParam(&amp;quot;left&amp;quot;) double left, @QueryParam(&amp;quot;right&amp;quot;) double right) { return left+right; }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Elosztott technológiák összefoglaló =&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!&amp;amp;nbsp;&lt;br /&gt;
!REST&lt;br /&gt;
!RMI&lt;br /&gt;
!WS&lt;br /&gt;
!CORBA&lt;br /&gt;
|-&lt;br /&gt;
!Különbözö programnyelvek között müködik&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Kommunikációs protokoll&lt;br /&gt;
|HTTP&lt;br /&gt;
|RMI&lt;br /&gt;
|SOAP&lt;br /&gt;
|IIOP&lt;br /&gt;
|-&lt;br /&gt;
!Interfészleíró&lt;br /&gt;
|nincs/WADL&lt;br /&gt;
|Java Interface&lt;br /&gt;
|WSDL&lt;br /&gt;
|IDL&lt;br /&gt;
|-&lt;br /&gt;
!Katalógus&lt;br /&gt;
|JNDI&lt;br /&gt;
|UDDI&lt;br /&gt;
|Naming Service&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
!Elosztott&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Szakványos&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Széles körü támogatás&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Egyszerü&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|nem&lt;br /&gt;
|-&lt;br /&gt;
!Egyszerü API&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|-&lt;br /&gt;
!Gyors&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Biztonság, tranzakciók&lt;br /&gt;
|nem&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;/div&gt;</summary>
		<author><name>Tank</name></author>
	</entry>
	<entry>
		<id>https://vik.wiki/index.php?title=8._REST_(2012)&amp;diff=166392</id>
		<title>8. REST (2012)</title>
		<link rel="alternate" type="text/html" href="https://vik.wiki/index.php?title=8._REST_(2012)&amp;diff=166392"/>
		<updated>2013-05-26T17:22:41Z</updated>

		<summary type="html">&lt;p&gt;Tank: /* REST kritikák */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Csonk}}&lt;br /&gt;
&lt;br /&gt;
=HTTP=&lt;br /&gt;
* HTTP GET&lt;br /&gt;
[[Fájl:HTTP_GET.png]]&lt;br /&gt;
* HTTP POST&lt;br /&gt;
[[Fájl:HTTP_POST.png]]&lt;br /&gt;
&lt;br /&gt;
=REST=&lt;br /&gt;
REST = Representational State Transfer&lt;br /&gt;
&lt;br /&gt;
==RESTful HTTP==&lt;br /&gt;
* HTTP protokoll kibövítése: GET, POST, PUT, DELETE&lt;br /&gt;
* Bemenö paraméterek: URL része, URL query string, POST paraméter, HTTP body&lt;br /&gt;
* Visszatérési érték: HTTP body&lt;br /&gt;
* nagyon egyszerü: böngészőből is tesztelhetö&lt;br /&gt;
&lt;br /&gt;
==REST alapelvei==&lt;br /&gt;
* Minden eröforráshoz azonosító rendelése (URI, URN, URL a jó, mert egyértelmű, könnyű feloldani, független a mögöttes technológiától)&lt;br /&gt;
* Erőforrások lehetnek: doksik, adatok (szamitas eredmenye), szolgáltatások (SOAP, metaadatok, stb), fogalmak&lt;br /&gt;
* Dolgok összekapcsolása (jó URL cimet kell választani)&lt;br /&gt;
* CRUD müveletek használata (Create, Read, Update, Delete)&lt;br /&gt;
* Állapotmentes kommunikáció&lt;br /&gt;
&lt;br /&gt;
==Többféle adatreprezentáció==&lt;br /&gt;
*HTML (emberek szamara) vagy XML, JSON, stb. gépek számára&lt;br /&gt;
*változhat a struktúra&lt;br /&gt;
&lt;br /&gt;
==Állapotmentes kommunikáció==&lt;br /&gt;
A REST önmagában állapotmentes&lt;br /&gt;
*De az alkalmazásnak lehet állapota (kliens oldalon, erőforrásban tárolva)&lt;br /&gt;
*Skálázhatósági előnyök emiatt (nincs session, felcserélhető szerverek)&lt;br /&gt;
&lt;br /&gt;
==Műveletek erőforrásokon==&lt;br /&gt;
[[Fájl:muv_eroforr.png]]&lt;br /&gt;
* &#039;&#039;&#039;safe:&#039;&#039;&#039; a kliens olyan műveletet hajt végre, ami csak lekérdez, és nem tehető felelőssé az okozott mellékhatásokért&lt;br /&gt;
* &#039;&#039;&#039;idempotent&#039;&#039;&#039;: a művelet ismételt végrehajtása ugyanazt az eredményt produkálja&lt;br /&gt;
* &#039;&#039;&#039;cacheable&#039;&#039;&#039;: akár a proxy vagy a gateway is cachelheti a szerver kapcsolódása nélkül. Képek esetén ajánlatos a long live beállitása.&lt;br /&gt;
&lt;br /&gt;
==REST kritikák==&lt;br /&gt;
* CRUD műveleteken kívül másra nem alkalmas&lt;br /&gt;
* Nincs interfészleíró (ami leírja a műveleteket és a paraméterek típusát (szemantikát nem, azaz kliens stub -&amp;gt; szerver skeleton generálás))&lt;br /&gt;
* Túl sok belső részletet elárul (igen, mert szemlélet más: műveletközpontú helyett adatközpontú)&lt;br /&gt;
* Tervezési guideline-ok hiánya&lt;br /&gt;
* Middleware funkciók hiánya (nincs tranzakció kezelés, meg nem biztos hogy jönn a HTTP 200 OK válasz)&lt;br /&gt;
* Nincs publish-subscribe (pl egy RSS proginak) ill. aszinkron kommunikáció (ha a szerver hosszú müveletet végez, megoldásként HTTP 202 Accepted)&lt;br /&gt;
&lt;br /&gt;
= Elosztott technológiák összefoglaló =&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!&amp;amp;nbsp;&lt;br /&gt;
!REST&lt;br /&gt;
!RMI&lt;br /&gt;
!WS&lt;br /&gt;
!CORBA&lt;br /&gt;
|-&lt;br /&gt;
!Különbözö programnyelvek között müködik&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Kommunikációs protokoll&lt;br /&gt;
|HTTP&lt;br /&gt;
|RMI&lt;br /&gt;
|SOAP&lt;br /&gt;
|IIOP&lt;br /&gt;
|-&lt;br /&gt;
!Interfészleíró&lt;br /&gt;
|nincs/WADL&lt;br /&gt;
|Java Interface&lt;br /&gt;
|WSDL&lt;br /&gt;
|IDL&lt;br /&gt;
|-&lt;br /&gt;
!Katalógus&lt;br /&gt;
|JNDI&lt;br /&gt;
|UDDI&lt;br /&gt;
|Naming Service&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
!Elosztott&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Szakványos&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Széles körü támogatás&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Egyszerü&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|nem&lt;br /&gt;
|-&lt;br /&gt;
!Egyszerü API&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|-&lt;br /&gt;
!Gyors&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Biztonság, tranzakciók&lt;br /&gt;
|nem&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;/div&gt;</summary>
		<author><name>Tank</name></author>
	</entry>
	<entry>
		<id>https://vik.wiki/index.php?title=8._REST_(2012)&amp;diff=166391</id>
		<title>8. REST (2012)</title>
		<link rel="alternate" type="text/html" href="https://vik.wiki/index.php?title=8._REST_(2012)&amp;diff=166391"/>
		<updated>2013-05-26T17:21:59Z</updated>

		<summary type="html">&lt;p&gt;Tank: /* REST kritikák */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Csonk}}&lt;br /&gt;
&lt;br /&gt;
=HTTP=&lt;br /&gt;
* HTTP GET&lt;br /&gt;
[[Fájl:HTTP_GET.png]]&lt;br /&gt;
* HTTP POST&lt;br /&gt;
[[Fájl:HTTP_POST.png]]&lt;br /&gt;
&lt;br /&gt;
=REST=&lt;br /&gt;
REST = Representational State Transfer&lt;br /&gt;
&lt;br /&gt;
==RESTful HTTP==&lt;br /&gt;
* HTTP protokoll kibövítése: GET, POST, PUT, DELETE&lt;br /&gt;
* Bemenö paraméterek: URL része, URL query string, POST paraméter, HTTP body&lt;br /&gt;
* Visszatérési érték: HTTP body&lt;br /&gt;
* nagyon egyszerü: böngészőből is tesztelhetö&lt;br /&gt;
&lt;br /&gt;
==REST alapelvei==&lt;br /&gt;
* Minden eröforráshoz azonosító rendelése (URI, URN, URL a jó, mert egyértelmű, könnyű feloldani, független a mögöttes technológiától)&lt;br /&gt;
* Erőforrások lehetnek: doksik, adatok (szamitas eredmenye), szolgáltatások (SOAP, metaadatok, stb), fogalmak&lt;br /&gt;
* Dolgok összekapcsolása (jó URL cimet kell választani)&lt;br /&gt;
* CRUD müveletek használata (Create, Read, Update, Delete)&lt;br /&gt;
* Állapotmentes kommunikáció&lt;br /&gt;
&lt;br /&gt;
==Többféle adatreprezentáció==&lt;br /&gt;
*HTML (emberek szamara) vagy XML, JSON, stb. gépek számára&lt;br /&gt;
*változhat a struktúra&lt;br /&gt;
&lt;br /&gt;
==Állapotmentes kommunikáció==&lt;br /&gt;
A REST önmagában állapotmentes&lt;br /&gt;
*De az alkalmazásnak lehet állapota (kliens oldalon, erőforrásban tárolva)&lt;br /&gt;
*Skálázhatósági előnyök emiatt (nincs session, felcserélhető szerverek)&lt;br /&gt;
&lt;br /&gt;
==Műveletek erőforrásokon==&lt;br /&gt;
[[Fájl:muv_eroforr.png]]&lt;br /&gt;
* &#039;&#039;&#039;safe:&#039;&#039;&#039; a kliens olyan műveletet hajt végre, ami csak lekérdez, és nem tehető felelőssé az okozott mellékhatásokért&lt;br /&gt;
* &#039;&#039;&#039;idempotent&#039;&#039;&#039;: a művelet ismételt végrehajtása ugyanazt az eredményt produkálja&lt;br /&gt;
* &#039;&#039;&#039;cacheable&#039;&#039;&#039;: akár a proxy vagy a gateway is cachelheti a szerver kapcsolódása nélkül. Képek esetén ajánlatos a long live beállitása.&lt;br /&gt;
&lt;br /&gt;
==REST kritikák==&lt;br /&gt;
* CRUD műveleteken kívül másra nem alkalmas&lt;br /&gt;
* Nincs interfészleíró (ami leírja a műveleteket és a paraméterek típusát (szemantikát nem, azaz kliens stub -&amp;gt; szerver skeleton generálás))&lt;br /&gt;
* Túl sok belső részletet elárul (igen, mert szemlélet más: műveletközpontú helyett adatközpontú)&lt;br /&gt;
* Tervezési guideline-ok hiánya&lt;br /&gt;
* Middleware funkciók hiánya (nincs tranzakció kezelés, meg nem biztos hogy jönn a HTTP 200 OK válasz)&lt;br /&gt;
* Nincs publish-subscribe (pl RSS) ill. aszinkron kommunikáció (ha a szerver hosszú müveletet végez, megoldásként HTTP 202 Accepted)&lt;br /&gt;
&lt;br /&gt;
= Elosztott technológiák összefoglaló =&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!&amp;amp;nbsp;&lt;br /&gt;
!REST&lt;br /&gt;
!RMI&lt;br /&gt;
!WS&lt;br /&gt;
!CORBA&lt;br /&gt;
|-&lt;br /&gt;
!Különbözö programnyelvek között müködik&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Kommunikációs protokoll&lt;br /&gt;
|HTTP&lt;br /&gt;
|RMI&lt;br /&gt;
|SOAP&lt;br /&gt;
|IIOP&lt;br /&gt;
|-&lt;br /&gt;
!Interfészleíró&lt;br /&gt;
|nincs/WADL&lt;br /&gt;
|Java Interface&lt;br /&gt;
|WSDL&lt;br /&gt;
|IDL&lt;br /&gt;
|-&lt;br /&gt;
!Katalógus&lt;br /&gt;
|JNDI&lt;br /&gt;
|UDDI&lt;br /&gt;
|Naming Service&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
!Elosztott&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Szakványos&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Széles körü támogatás&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Egyszerü&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|nem&lt;br /&gt;
|-&lt;br /&gt;
!Egyszerü API&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|-&lt;br /&gt;
!Gyors&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Biztonság, tranzakciók&lt;br /&gt;
|nem&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;/div&gt;</summary>
		<author><name>Tank</name></author>
	</entry>
	<entry>
		<id>https://vik.wiki/index.php?title=8._REST_(2012)&amp;diff=166390</id>
		<title>8. REST (2012)</title>
		<link rel="alternate" type="text/html" href="https://vik.wiki/index.php?title=8._REST_(2012)&amp;diff=166390"/>
		<updated>2013-05-26T17:17:17Z</updated>

		<summary type="html">&lt;p&gt;Tank: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Csonk}}&lt;br /&gt;
&lt;br /&gt;
=HTTP=&lt;br /&gt;
* HTTP GET&lt;br /&gt;
[[Fájl:HTTP_GET.png]]&lt;br /&gt;
* HTTP POST&lt;br /&gt;
[[Fájl:HTTP_POST.png]]&lt;br /&gt;
&lt;br /&gt;
=REST=&lt;br /&gt;
REST = Representational State Transfer&lt;br /&gt;
&lt;br /&gt;
==RESTful HTTP==&lt;br /&gt;
* HTTP protokoll kibövítése: GET, POST, PUT, DELETE&lt;br /&gt;
* Bemenö paraméterek: URL része, URL query string, POST paraméter, HTTP body&lt;br /&gt;
* Visszatérési érték: HTTP body&lt;br /&gt;
* nagyon egyszerü: böngészőből is tesztelhetö&lt;br /&gt;
&lt;br /&gt;
==REST alapelvei==&lt;br /&gt;
* Minden eröforráshoz azonosító rendelése (URI, URN, URL a jó, mert egyértelmű, könnyű feloldani, független a mögöttes technológiától)&lt;br /&gt;
* Erőforrások lehetnek: doksik, adatok (szamitas eredmenye), szolgáltatások (SOAP, metaadatok, stb), fogalmak&lt;br /&gt;
* Dolgok összekapcsolása (jó URL cimet kell választani)&lt;br /&gt;
* CRUD müveletek használata (Create, Read, Update, Delete)&lt;br /&gt;
* Állapotmentes kommunikáció&lt;br /&gt;
&lt;br /&gt;
==Többféle adatreprezentáció==&lt;br /&gt;
*HTML (emberek szamara) vagy XML, JSON, stb. gépek számára&lt;br /&gt;
*változhat a struktúra&lt;br /&gt;
&lt;br /&gt;
==Állapotmentes kommunikáció==&lt;br /&gt;
A REST önmagában állapotmentes&lt;br /&gt;
*De az alkalmazásnak lehet állapota (kliens oldalon, erőforrásban tárolva)&lt;br /&gt;
*Skálázhatósági előnyök emiatt (nincs session, felcserélhető szerverek)&lt;br /&gt;
&lt;br /&gt;
==Műveletek erőforrásokon==&lt;br /&gt;
[[Fájl:muv_eroforr.png]]&lt;br /&gt;
* &#039;&#039;&#039;safe:&#039;&#039;&#039; a kliens olyan műveletet hajt végre, ami csak lekérdez, és nem tehető felelőssé az okozott mellékhatásokért&lt;br /&gt;
* &#039;&#039;&#039;idempotent&#039;&#039;&#039;: a művelet ismételt végrehajtása ugyanazt az eredményt produkálja&lt;br /&gt;
* &#039;&#039;&#039;cacheable&#039;&#039;&#039;: akár a proxy vagy a gateway is cachelheti a szerver kapcsolódása nélkül. Képek esetén ajánlatos a long live beállitása.&lt;br /&gt;
&lt;br /&gt;
==REST kritikák==&lt;br /&gt;
* CRUD műveleteken kívül másra nem alkalmas&lt;br /&gt;
* Nincs interfészleíró (ami leírja a műveleteket és a paraméterek típusát (szemantikát nem, azaz kliens stub -&amp;gt; szerver skeleton generálás))&lt;br /&gt;
* Túl sok belső részletet elárul&lt;br /&gt;
* Tervezési guideline-ok hiánya&lt;br /&gt;
* Middleware funkciók hiánya&lt;br /&gt;
* Nincs publish-subscribe ill. aszinkron kommunikáció&lt;br /&gt;
&lt;br /&gt;
= Elosztott technológiák összefoglaló =&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!&amp;amp;nbsp;&lt;br /&gt;
!REST&lt;br /&gt;
!RMI&lt;br /&gt;
!WS&lt;br /&gt;
!CORBA&lt;br /&gt;
|-&lt;br /&gt;
!Különbözö programnyelvek között müködik&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Kommunikációs protokoll&lt;br /&gt;
|HTTP&lt;br /&gt;
|RMI&lt;br /&gt;
|SOAP&lt;br /&gt;
|IIOP&lt;br /&gt;
|-&lt;br /&gt;
!Interfészleíró&lt;br /&gt;
|nincs/WADL&lt;br /&gt;
|Java Interface&lt;br /&gt;
|WSDL&lt;br /&gt;
|IDL&lt;br /&gt;
|-&lt;br /&gt;
!Katalógus&lt;br /&gt;
|JNDI&lt;br /&gt;
|UDDI&lt;br /&gt;
|Naming Service&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
!Elosztott&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Szakványos&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Széles körü támogatás&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Egyszerü&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|nem&lt;br /&gt;
|-&lt;br /&gt;
!Egyszerü API&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|-&lt;br /&gt;
!Gyors&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Biztonság, tranzakciók&lt;br /&gt;
|nem&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;/div&gt;</summary>
		<author><name>Tank</name></author>
	</entry>
	<entry>
		<id>https://vik.wiki/index.php?title=8._REST_(2012)&amp;diff=166389</id>
		<title>8. REST (2012)</title>
		<link rel="alternate" type="text/html" href="https://vik.wiki/index.php?title=8._REST_(2012)&amp;diff=166389"/>
		<updated>2013-05-26T17:11:06Z</updated>

		<summary type="html">&lt;p&gt;Tank: /* Műveletek erőforrásokon */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Csonk}}&lt;br /&gt;
&lt;br /&gt;
=HTTP=&lt;br /&gt;
* HTTP GET&lt;br /&gt;
[[Fájl:HTTP_GET.png]]&lt;br /&gt;
* HTTP POST&lt;br /&gt;
[[Fájl:HTTP_POST.png]]&lt;br /&gt;
&lt;br /&gt;
=REST=&lt;br /&gt;
REST = Representational State Transfer&lt;br /&gt;
&lt;br /&gt;
==RESTful HTTP==&lt;br /&gt;
* HTTP protokoll kibövítése: GET, POST, PUT, DELETE&lt;br /&gt;
* Bemenö paraméterek: URL része, URL query string, POST paraméter, HTTP body&lt;br /&gt;
* Visszatérési érték: HTTP body&lt;br /&gt;
* nagyon egyszerü: böngészőből is tesztelhetö&lt;br /&gt;
&lt;br /&gt;
==REST alapelvei==&lt;br /&gt;
* Minden eröforráshoz azonosító rendelése (URI, URN, URL a jó, mert egyértelmű, könnyű feloldani, független a mögöttes technológiától)&lt;br /&gt;
* Erőforrások lehetnek: doksik, adatok (szamitas eredmenye), szolgáltatások (SOAP, metaadatok, stb), fogalmak&lt;br /&gt;
* Dolgok összekapcsolása (jó URL cimet kell választani)&lt;br /&gt;
* CRUD müveletek használata (Create, Read, Update, Delete)&lt;br /&gt;
* Állapotmentes kommunikáció&lt;br /&gt;
&lt;br /&gt;
==Többféle adatreprezentáció==&lt;br /&gt;
*HTML (emberek szamara) vagy XML, JSON, stb. gépek számára&lt;br /&gt;
*változhat a struktúra&lt;br /&gt;
&lt;br /&gt;
==Állapotmentes kommunikáció==&lt;br /&gt;
A REST önmagában állapotmentes&lt;br /&gt;
*De az alkalmazásnak lehet állapota (kliens oldalon, erőforrásban tárolva)&lt;br /&gt;
*Skálázhatósági előnyök emiatt (nincs session, felcserélhető szerverek)&lt;br /&gt;
&lt;br /&gt;
==Műveletek erőforrásokon==&lt;br /&gt;
[[Fájl:muv_eroforr.png]]&lt;br /&gt;
* &#039;&#039;&#039;safe:&#039;&#039;&#039; a kliens olyan műveletet hajt végre, ami csak lekérdez, és nem tehető felelőssé az okozott mellékhatásokért&lt;br /&gt;
* &#039;&#039;&#039;idempotent&#039;&#039;&#039;: a művelet ismételt végrehajtása ugyanazt az eredményt produkálja&lt;br /&gt;
* &#039;&#039;&#039;cacheable&#039;&#039;&#039;: akár a proxy vagy a gateway is cachelheti a szerver kapcsolódása nélkül. Képek esetén ajánlatos a long live beállitása.&lt;br /&gt;
&lt;br /&gt;
= Elosztott technológiák összefoglaló =&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!&amp;amp;nbsp;&lt;br /&gt;
!REST&lt;br /&gt;
!RMI&lt;br /&gt;
!WS&lt;br /&gt;
!CORBA&lt;br /&gt;
|-&lt;br /&gt;
!Különbözö programnyelvek között müködik&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Kommunikációs protokoll&lt;br /&gt;
|HTTP&lt;br /&gt;
|RMI&lt;br /&gt;
|SOAP&lt;br /&gt;
|IIOP&lt;br /&gt;
|-&lt;br /&gt;
!Interfészleíró&lt;br /&gt;
|nincs/WADL&lt;br /&gt;
|Java Interface&lt;br /&gt;
|WSDL&lt;br /&gt;
|IDL&lt;br /&gt;
|-&lt;br /&gt;
!Katalógus&lt;br /&gt;
|JNDI&lt;br /&gt;
|UDDI&lt;br /&gt;
|Naming Service&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
!Elosztott&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Szakványos&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Széles körü támogatás&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Egyszerü&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|nem&lt;br /&gt;
|-&lt;br /&gt;
!Egyszerü API&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|-&lt;br /&gt;
!Gyors&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Biztonság, tranzakciók&lt;br /&gt;
|nem&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;/div&gt;</summary>
		<author><name>Tank</name></author>
	</entry>
	<entry>
		<id>https://vik.wiki/index.php?title=8._REST_(2012)&amp;diff=166388</id>
		<title>8. REST (2012)</title>
		<link rel="alternate" type="text/html" href="https://vik.wiki/index.php?title=8._REST_(2012)&amp;diff=166388"/>
		<updated>2013-05-26T17:10:51Z</updated>

		<summary type="html">&lt;p&gt;Tank: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Csonk}}&lt;br /&gt;
&lt;br /&gt;
=HTTP=&lt;br /&gt;
* HTTP GET&lt;br /&gt;
[[Fájl:HTTP_GET.png]]&lt;br /&gt;
* HTTP POST&lt;br /&gt;
[[Fájl:HTTP_POST.png]]&lt;br /&gt;
&lt;br /&gt;
=REST=&lt;br /&gt;
REST = Representational State Transfer&lt;br /&gt;
&lt;br /&gt;
==RESTful HTTP==&lt;br /&gt;
* HTTP protokoll kibövítése: GET, POST, PUT, DELETE&lt;br /&gt;
* Bemenö paraméterek: URL része, URL query string, POST paraméter, HTTP body&lt;br /&gt;
* Visszatérési érték: HTTP body&lt;br /&gt;
* nagyon egyszerü: böngészőből is tesztelhetö&lt;br /&gt;
&lt;br /&gt;
==REST alapelvei==&lt;br /&gt;
* Minden eröforráshoz azonosító rendelése (URI, URN, URL a jó, mert egyértelmű, könnyű feloldani, független a mögöttes technológiától)&lt;br /&gt;
* Erőforrások lehetnek: doksik, adatok (szamitas eredmenye), szolgáltatások (SOAP, metaadatok, stb), fogalmak&lt;br /&gt;
* Dolgok összekapcsolása (jó URL cimet kell választani)&lt;br /&gt;
* CRUD müveletek használata (Create, Read, Update, Delete)&lt;br /&gt;
* Állapotmentes kommunikáció&lt;br /&gt;
&lt;br /&gt;
==Többféle adatreprezentáció==&lt;br /&gt;
*HTML (emberek szamara) vagy XML, JSON, stb. gépek számára&lt;br /&gt;
*változhat a struktúra&lt;br /&gt;
&lt;br /&gt;
==Állapotmentes kommunikáció==&lt;br /&gt;
A REST önmagában állapotmentes&lt;br /&gt;
*De az alkalmazásnak lehet állapota (kliens oldalon, erőforrásban tárolva)&lt;br /&gt;
*Skálázhatósági előnyök emiatt (nincs session, felcserélhető szerverek)&lt;br /&gt;
&lt;br /&gt;
==Műveletek erőforrásokon==&lt;br /&gt;
[[Fájl:muv_eroforr.png]]&lt;br /&gt;
* &#039;&#039;&#039;safe:&#039;&#039;&#039; a kliens olyan műveletet hajt&lt;br /&gt;
végre, ami csak lekérdez, és nem tehető felelőssé az okozott mellékhatásokért&lt;br /&gt;
* &#039;&#039;&#039;idempotent&#039;&#039;&#039;: a művelet ismételt végrehajtása ugyanazt az eredményt produkálja&lt;br /&gt;
* &#039;&#039;&#039;cacheable&#039;&#039;&#039;: akár a proxy vagy a gateway is cachelheti a szerver kapcsolódása nélkül. Képek esetén ajánlatos a long live beállitása.&lt;br /&gt;
&lt;br /&gt;
= Elosztott technológiák összefoglaló =&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!&amp;amp;nbsp;&lt;br /&gt;
!REST&lt;br /&gt;
!RMI&lt;br /&gt;
!WS&lt;br /&gt;
!CORBA&lt;br /&gt;
|-&lt;br /&gt;
!Különbözö programnyelvek között müködik&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Kommunikációs protokoll&lt;br /&gt;
|HTTP&lt;br /&gt;
|RMI&lt;br /&gt;
|SOAP&lt;br /&gt;
|IIOP&lt;br /&gt;
|-&lt;br /&gt;
!Interfészleíró&lt;br /&gt;
|nincs/WADL&lt;br /&gt;
|Java Interface&lt;br /&gt;
|WSDL&lt;br /&gt;
|IDL&lt;br /&gt;
|-&lt;br /&gt;
!Katalógus&lt;br /&gt;
|JNDI&lt;br /&gt;
|UDDI&lt;br /&gt;
|Naming Service&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
!Elosztott&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Szakványos&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Széles körü támogatás&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Egyszerü&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|nem&lt;br /&gt;
|-&lt;br /&gt;
!Egyszerü API&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|-&lt;br /&gt;
!Gyors&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Biztonság, tranzakciók&lt;br /&gt;
|nem&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;/div&gt;</summary>
		<author><name>Tank</name></author>
	</entry>
	<entry>
		<id>https://vik.wiki/index.php?title=8._REST_(2012)&amp;diff=166387</id>
		<title>8. REST (2012)</title>
		<link rel="alternate" type="text/html" href="https://vik.wiki/index.php?title=8._REST_(2012)&amp;diff=166387"/>
		<updated>2013-05-26T17:10:18Z</updated>

		<summary type="html">&lt;p&gt;Tank: /* Műveletek erőforrásokon */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Csonk}}&lt;br /&gt;
&lt;br /&gt;
=HTTP=&lt;br /&gt;
* HTTP GET&lt;br /&gt;
[[Fájl:HTTP_GET.png]]&lt;br /&gt;
* HTTP POST&lt;br /&gt;
[[Fájl:HTTP_POST.png]]&lt;br /&gt;
&lt;br /&gt;
=REST=&lt;br /&gt;
REST = Representational State Transfer&lt;br /&gt;
&lt;br /&gt;
==RESTful HTTP==&lt;br /&gt;
* HTTP protokoll kibövítése: GET, POST, PUT, DELETE&lt;br /&gt;
* Bemenö paraméterek: URL része, URL query string, POST paraméter, HTTP body&lt;br /&gt;
* Visszatérési érték: HTTP body&lt;br /&gt;
* nagyon egyszerü: böngészőből is tesztelhetö&lt;br /&gt;
&lt;br /&gt;
==REST alapelvei==&lt;br /&gt;
* Minden eröforráshoz azonosító rendelése (URI, URN, URL a jó, mert egyértelmű, könnyű feloldani, független a mögöttes technológiától)&lt;br /&gt;
* Erőforrások lehetnek: doksik, adatok (szamitas eredmenye), szolgáltatások (SOAP, metaadatok, stb), fogalmak&lt;br /&gt;
* Dolgok összekapcsolása (jó URL cimet kell választani)&lt;br /&gt;
* CRUD müveletek használata (Create, Read, Update, Delete)&lt;br /&gt;
* Állapotmentes kommunikáció&lt;br /&gt;
&lt;br /&gt;
==Műveletek erőforrásokon==&lt;br /&gt;
[[Fájl:muv_eroforr.png]]&lt;br /&gt;
* &#039;&#039;&#039;safe:&#039;&#039;&#039; a kliens olyan műveletet hajt&lt;br /&gt;
végre, ami csak lekérdez, és nem tehető felelőssé az okozott mellékhatásokért&lt;br /&gt;
* &#039;&#039;&#039;idempotent&#039;&#039;&#039;: a művelet ismételt végrehajtása ugyanazt az eredményt produkálja&lt;br /&gt;
* &#039;&#039;&#039;cacheable&#039;&#039;&#039;: akár a proxy vagy a gateway is cachelheti a szerver kapcsolódása nélkül. Képek esetén ajánlatos a long live beállitása.&lt;br /&gt;
&lt;br /&gt;
==Többféle adatreprezentáció==&lt;br /&gt;
*HTML (emberek szamara) vagy XML, JSON, stb. gépek számára&lt;br /&gt;
*változhat a struktúra&lt;br /&gt;
&lt;br /&gt;
==Állapotmentes kommunikáció==&lt;br /&gt;
A REST önmagában állapotmentes&lt;br /&gt;
*De az alkalmazásnak lehet állapota (kliens oldalon, erőforrásban tárolva)&lt;br /&gt;
*Skálázhatósági előnyök emiatt (nincs session, felcserélhető szerverek)&lt;br /&gt;
&lt;br /&gt;
= Elosztott technológiák összefoglaló =&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!&amp;amp;nbsp;&lt;br /&gt;
!REST&lt;br /&gt;
!RMI&lt;br /&gt;
!WS&lt;br /&gt;
!CORBA&lt;br /&gt;
|-&lt;br /&gt;
!Különbözö programnyelvek között müködik&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Kommunikációs protokoll&lt;br /&gt;
|HTTP&lt;br /&gt;
|RMI&lt;br /&gt;
|SOAP&lt;br /&gt;
|IIOP&lt;br /&gt;
|-&lt;br /&gt;
!Interfészleíró&lt;br /&gt;
|nincs/WADL&lt;br /&gt;
|Java Interface&lt;br /&gt;
|WSDL&lt;br /&gt;
|IDL&lt;br /&gt;
|-&lt;br /&gt;
!Katalógus&lt;br /&gt;
|JNDI&lt;br /&gt;
|UDDI&lt;br /&gt;
|Naming Service&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
!Elosztott&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Szakványos&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Széles körü támogatás&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Egyszerü&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|nem&lt;br /&gt;
|-&lt;br /&gt;
!Egyszerü API&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|-&lt;br /&gt;
!Gyors&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Biztonság, tranzakciók&lt;br /&gt;
|nem&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;/div&gt;</summary>
		<author><name>Tank</name></author>
	</entry>
	<entry>
		<id>https://vik.wiki/index.php?title=8._REST_(2012)&amp;diff=166386</id>
		<title>8. REST (2012)</title>
		<link rel="alternate" type="text/html" href="https://vik.wiki/index.php?title=8._REST_(2012)&amp;diff=166386"/>
		<updated>2013-05-26T17:09:31Z</updated>

		<summary type="html">&lt;p&gt;Tank: /* Műveletek erőforrásokon */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Csonk}}&lt;br /&gt;
&lt;br /&gt;
=HTTP=&lt;br /&gt;
* HTTP GET&lt;br /&gt;
[[Fájl:HTTP_GET.png]]&lt;br /&gt;
* HTTP POST&lt;br /&gt;
[[Fájl:HTTP_POST.png]]&lt;br /&gt;
&lt;br /&gt;
=REST=&lt;br /&gt;
REST = Representational State Transfer&lt;br /&gt;
&lt;br /&gt;
==RESTful HTTP==&lt;br /&gt;
* HTTP protokoll kibövítése: GET, POST, PUT, DELETE&lt;br /&gt;
* Bemenö paraméterek: URL része, URL query string, POST paraméter, HTTP body&lt;br /&gt;
* Visszatérési érték: HTTP body&lt;br /&gt;
* nagyon egyszerü: böngészőből is tesztelhetö&lt;br /&gt;
&lt;br /&gt;
==REST alapelvei==&lt;br /&gt;
* Minden eröforráshoz azonosító rendelése (URI, URN, URL a jó, mert egyértelmű, könnyű feloldani, független a mögöttes technológiától)&lt;br /&gt;
* Erőforrások lehetnek: doksik, adatok (szamitas eredmenye), szolgáltatások (SOAP, metaadatok, stb), fogalmak&lt;br /&gt;
* Dolgok összekapcsolása (jó URL cimet kell választani)&lt;br /&gt;
* CRUD müveletek használata (Create, Read, Update, Delete)&lt;br /&gt;
* Állapotmentes kommunikáció&lt;br /&gt;
&lt;br /&gt;
==Műveletek erőforrásokon==&lt;br /&gt;
[[Fájl:muv_eroforr.png]]&lt;br /&gt;
* &#039;&#039;&#039;safe:&#039;&#039;&#039; a kliens olyan műveletet hajt&lt;br /&gt;
végre, ami csak lekérdez, és nem tehető felelőssé az&lt;br /&gt;
okozott mellékhatásokért&lt;br /&gt;
* &#039;&#039;&#039;idempotent&#039;&#039;&#039;: a művelet ismételt végrehajtása ugyanazt&lt;br /&gt;
az eredményt produkálja&lt;br /&gt;
* &#039;&#039;&#039;cacheable&#039;&#039;&#039;: akár a proxy vagy a gateway is cachelheti a szerver kapcsolódása nélkül. Képek esetén ajánlatos a long live beállitása.&lt;br /&gt;
&lt;br /&gt;
==Többféle adatreprezentáció==&lt;br /&gt;
*HTML (emberek szamara) vagy XML, JSON, stb. gépek számára&lt;br /&gt;
*változhat a struktúra&lt;br /&gt;
&lt;br /&gt;
==Állapotmentes kommunikáció==&lt;br /&gt;
A REST önmagában állapotmentes&lt;br /&gt;
*De az alkalmazásnak lehet állapota (kliens oldalon, erőforrásban tárolva)&lt;br /&gt;
*Skálázhatósági előnyök emiatt (nincs session, felcserélhető szerverek)&lt;br /&gt;
&lt;br /&gt;
= Elosztott technológiák összefoglaló =&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!&amp;amp;nbsp;&lt;br /&gt;
!REST&lt;br /&gt;
!RMI&lt;br /&gt;
!WS&lt;br /&gt;
!CORBA&lt;br /&gt;
|-&lt;br /&gt;
!Különbözö programnyelvek között müködik&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Kommunikációs protokoll&lt;br /&gt;
|HTTP&lt;br /&gt;
|RMI&lt;br /&gt;
|SOAP&lt;br /&gt;
|IIOP&lt;br /&gt;
|-&lt;br /&gt;
!Interfészleíró&lt;br /&gt;
|nincs/WADL&lt;br /&gt;
|Java Interface&lt;br /&gt;
|WSDL&lt;br /&gt;
|IDL&lt;br /&gt;
|-&lt;br /&gt;
!Katalógus&lt;br /&gt;
|JNDI&lt;br /&gt;
|UDDI&lt;br /&gt;
|Naming Service&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
!Elosztott&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Szakványos&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Széles körü támogatás&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Egyszerü&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|nem&lt;br /&gt;
|-&lt;br /&gt;
!Egyszerü API&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|-&lt;br /&gt;
!Gyors&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Biztonság, tranzakciók&lt;br /&gt;
|nem&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;/div&gt;</summary>
		<author><name>Tank</name></author>
	</entry>
	<entry>
		<id>https://vik.wiki/index.php?title=8._REST_(2012)&amp;diff=166385</id>
		<title>8. REST (2012)</title>
		<link rel="alternate" type="text/html" href="https://vik.wiki/index.php?title=8._REST_(2012)&amp;diff=166385"/>
		<updated>2013-05-26T17:06:58Z</updated>

		<summary type="html">&lt;p&gt;Tank: /* REST alapelvei */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Csonk}}&lt;br /&gt;
&lt;br /&gt;
=HTTP=&lt;br /&gt;
* HTTP GET&lt;br /&gt;
[[Fájl:HTTP_GET.png]]&lt;br /&gt;
* HTTP POST&lt;br /&gt;
[[Fájl:HTTP_POST.png]]&lt;br /&gt;
&lt;br /&gt;
=REST=&lt;br /&gt;
REST = Representational State Transfer&lt;br /&gt;
&lt;br /&gt;
==RESTful HTTP==&lt;br /&gt;
* HTTP protokoll kibövítése: GET, POST, PUT, DELETE&lt;br /&gt;
* Bemenö paraméterek: URL része, URL query string, POST paraméter, HTTP body&lt;br /&gt;
* Visszatérési érték: HTTP body&lt;br /&gt;
* nagyon egyszerü: böngészőből is tesztelhetö&lt;br /&gt;
&lt;br /&gt;
==REST alapelvei==&lt;br /&gt;
* Minden eröforráshoz azonosító rendelése (URI, URN, URL a jó, mert egyértelmű, könnyű feloldani, független a mögöttes technológiától)&lt;br /&gt;
* Erőforrások lehetnek: doksik, adatok (szamitas eredmenye), szolgáltatások (SOAP, metaadatok, stb), fogalmak&lt;br /&gt;
* Dolgok összekapcsolása (jó URL cimet kell választani)&lt;br /&gt;
* CRUD müveletek használata (Create, Read, Update, Delete)&lt;br /&gt;
* Állapotmentes kommunikáció&lt;br /&gt;
&lt;br /&gt;
==Műveletek erőforrásokon==&lt;br /&gt;
[[Fájl:muv_eroforr.png]]&lt;br /&gt;
&lt;br /&gt;
==Többféle adatreprezentáció==&lt;br /&gt;
*HTML (emberek szamara) vagy XML, JSON, stb. gépek számára&lt;br /&gt;
*változhat a struktúra&lt;br /&gt;
&lt;br /&gt;
==Állapotmentes kommunikáció==&lt;br /&gt;
A REST önmagában állapotmentes&lt;br /&gt;
*De az alkalmazásnak lehet állapota (kliens oldalon, erőforrásban tárolva)&lt;br /&gt;
*Skálázhatósági előnyök emiatt (nincs session, felcserélhető szerverek)&lt;br /&gt;
&lt;br /&gt;
= Elosztott technológiák összefoglaló =&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!&amp;amp;nbsp;&lt;br /&gt;
!REST&lt;br /&gt;
!RMI&lt;br /&gt;
!WS&lt;br /&gt;
!CORBA&lt;br /&gt;
|-&lt;br /&gt;
!Különbözö programnyelvek között müködik&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Kommunikációs protokoll&lt;br /&gt;
|HTTP&lt;br /&gt;
|RMI&lt;br /&gt;
|SOAP&lt;br /&gt;
|IIOP&lt;br /&gt;
|-&lt;br /&gt;
!Interfészleíró&lt;br /&gt;
|nincs/WADL&lt;br /&gt;
|Java Interface&lt;br /&gt;
|WSDL&lt;br /&gt;
|IDL&lt;br /&gt;
|-&lt;br /&gt;
!Katalógus&lt;br /&gt;
|JNDI&lt;br /&gt;
|UDDI&lt;br /&gt;
|Naming Service&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
!Elosztott&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Szakványos&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Széles körü támogatás&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Egyszerü&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|nem&lt;br /&gt;
|-&lt;br /&gt;
!Egyszerü API&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|-&lt;br /&gt;
!Gyors&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Biztonság, tranzakciók&lt;br /&gt;
|nem&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;/div&gt;</summary>
		<author><name>Tank</name></author>
	</entry>
	<entry>
		<id>https://vik.wiki/index.php?title=8._REST_(2012)&amp;diff=166384</id>
		<title>8. REST (2012)</title>
		<link rel="alternate" type="text/html" href="https://vik.wiki/index.php?title=8._REST_(2012)&amp;diff=166384"/>
		<updated>2013-05-26T16:41:46Z</updated>

		<summary type="html">&lt;p&gt;Tank: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Csonk}}&lt;br /&gt;
&lt;br /&gt;
=HTTP=&lt;br /&gt;
* HTTP GET&lt;br /&gt;
[[Fájl:HTTP_GET.png]]&lt;br /&gt;
* HTTP POST&lt;br /&gt;
[[Fájl:HTTP_POST.png]]&lt;br /&gt;
&lt;br /&gt;
=REST=&lt;br /&gt;
REST = Representational State Transfer&lt;br /&gt;
&lt;br /&gt;
==RESTful HTTP==&lt;br /&gt;
* HTTP protokoll kibövítése: GET, POST, PUT, DELETE&lt;br /&gt;
* Bemenö paraméterek: URL része, URL query string, POST paraméter, HTTP body&lt;br /&gt;
* Visszatérési érték: HTTP body&lt;br /&gt;
* nagyon egyszerü: böngészőből is tesztelhetö&lt;br /&gt;
&lt;br /&gt;
==REST alapelvei==&lt;br /&gt;
* Minden eröforráshoz azonosító rendelése&lt;br /&gt;
* Dolgok összekapcsolása&lt;br /&gt;
* CRUD müveletek használata (Create, Read, Update, Delete)&lt;br /&gt;
* Állapotmentes kommunikáció&lt;br /&gt;
&lt;br /&gt;
==Műveletek erőforrásokon==&lt;br /&gt;
[[Fájl:muv_eroforr.png]]&lt;br /&gt;
&lt;br /&gt;
==Többféle adatreprezentáció==&lt;br /&gt;
*HTML (emberek szamara) vagy XML, JSON, stb. gépek számára&lt;br /&gt;
*változhat a struktúra&lt;br /&gt;
&lt;br /&gt;
==Állapotmentes kommunikáció==&lt;br /&gt;
A REST önmagában állapotmentes&lt;br /&gt;
*De az alkalmazásnak lehet állapota (kliens oldalon, erőforrásban tárolva)&lt;br /&gt;
*Skálázhatósági előnyök emiatt (nincs session, felcserélhető szerverek)&lt;br /&gt;
&lt;br /&gt;
= Elosztott technológiák összefoglaló =&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!&amp;amp;nbsp;&lt;br /&gt;
!REST&lt;br /&gt;
!RMI&lt;br /&gt;
!WS&lt;br /&gt;
!CORBA&lt;br /&gt;
|-&lt;br /&gt;
!Különbözö programnyelvek között müködik&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Kommunikációs protokoll&lt;br /&gt;
|HTTP&lt;br /&gt;
|RMI&lt;br /&gt;
|SOAP&lt;br /&gt;
|IIOP&lt;br /&gt;
|-&lt;br /&gt;
!Interfészleíró&lt;br /&gt;
|nincs/WADL&lt;br /&gt;
|Java Interface&lt;br /&gt;
|WSDL&lt;br /&gt;
|IDL&lt;br /&gt;
|-&lt;br /&gt;
!Katalógus&lt;br /&gt;
|JNDI&lt;br /&gt;
|UDDI&lt;br /&gt;
|Naming Service&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
!Elosztott&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Szakványos&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Széles körü támogatás&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Egyszerü&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|nem&lt;br /&gt;
|-&lt;br /&gt;
!Egyszerü API&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|-&lt;br /&gt;
!Gyors&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Biztonság, tranzakciók&lt;br /&gt;
|nem&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;/div&gt;</summary>
		<author><name>Tank</name></author>
	</entry>
	<entry>
		<id>https://vik.wiki/index.php?title=F%C3%A1jl:Muv_eroforr.png&amp;diff=166383</id>
		<title>Fájl:Muv eroforr.png</title>
		<link rel="alternate" type="text/html" href="https://vik.wiki/index.php?title=F%C3%A1jl:Muv_eroforr.png&amp;diff=166383"/>
		<updated>2013-05-26T16:35:34Z</updated>

		<summary type="html">&lt;p&gt;Tank: Műveletek erőforrásokon&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Műveletek erőforrásokon&lt;/div&gt;</summary>
		<author><name>Tank</name></author>
	</entry>
	<entry>
		<id>https://vik.wiki/index.php?title=8._REST_(2012)&amp;diff=166382</id>
		<title>8. REST (2012)</title>
		<link rel="alternate" type="text/html" href="https://vik.wiki/index.php?title=8._REST_(2012)&amp;diff=166382"/>
		<updated>2013-05-26T16:34:57Z</updated>

		<summary type="html">&lt;p&gt;Tank: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Csonk}}&lt;br /&gt;
&lt;br /&gt;
=HTTP=&lt;br /&gt;
* HTTP GET&lt;br /&gt;
[[Fájl:HTTP_GET.png]]&lt;br /&gt;
* HTTP POST&lt;br /&gt;
[[Fájl:HTTP_POST.png]]&lt;br /&gt;
&lt;br /&gt;
=REST=&lt;br /&gt;
REST = Representational State Transfer&lt;br /&gt;
&lt;br /&gt;
==RESTful HTTP==&lt;br /&gt;
* HTTP protokoll kibövítése: GET, POST, PUT, DELETE&lt;br /&gt;
* Bemenö paraméterek: URL része, URL query string, POST paraméter, HTTP body&lt;br /&gt;
* Visszatérési érték: HTTP body&lt;br /&gt;
* nagyon egyszerü: böngészőből is tesztelhetö&lt;br /&gt;
&lt;br /&gt;
==REST alapelvei==&lt;br /&gt;
* Minden eröforráshoz azonosító rendelése&lt;br /&gt;
* Dolgok összekapcsolása&lt;br /&gt;
* CRUD müveletek használata (Create, Read, Update, Delete)&lt;br /&gt;
* Állapotmentes kommunikáció&lt;br /&gt;
&lt;br /&gt;
==Műveletek erőforrásokon==&lt;br /&gt;
[[Fájl:muv_eroforr.png]]&lt;br /&gt;
&lt;br /&gt;
= Elosztott technológiák összefoglaló =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!&amp;amp;nbsp;&lt;br /&gt;
!REST&lt;br /&gt;
!RMI&lt;br /&gt;
!WS&lt;br /&gt;
!CORBA&lt;br /&gt;
|-&lt;br /&gt;
!Különbözö programnyelvek között müködik&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Kommunikációs protokoll&lt;br /&gt;
|HTTP&lt;br /&gt;
|RMI&lt;br /&gt;
|SOAP&lt;br /&gt;
|IIOP&lt;br /&gt;
|-&lt;br /&gt;
!Interfészleíró&lt;br /&gt;
|nincs/WADL&lt;br /&gt;
|Java Interface&lt;br /&gt;
|WSDL&lt;br /&gt;
|IDL&lt;br /&gt;
|-&lt;br /&gt;
!Katalógus&lt;br /&gt;
|JNDI&lt;br /&gt;
|UDDI&lt;br /&gt;
|Naming Service&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
!Elosztott&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Szakványos&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Széles körü támogatás&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Egyszerü&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|nem&lt;br /&gt;
|-&lt;br /&gt;
!Egyszerü API&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|-&lt;br /&gt;
!Gyors&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Biztonság, tranzakciók&lt;br /&gt;
|nem&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;/div&gt;</summary>
		<author><name>Tank</name></author>
	</entry>
	<entry>
		<id>https://vik.wiki/index.php?title=8._REST_(2012)&amp;diff=166381</id>
		<title>8. REST (2012)</title>
		<link rel="alternate" type="text/html" href="https://vik.wiki/index.php?title=8._REST_(2012)&amp;diff=166381"/>
		<updated>2013-05-26T16:30:41Z</updated>

		<summary type="html">&lt;p&gt;Tank: /* REST alapelvei */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Csonk}}&lt;br /&gt;
&lt;br /&gt;
=HTTP=&lt;br /&gt;
* HTTP GET&lt;br /&gt;
[[Fájl:HTTP_GET.png]]&lt;br /&gt;
* HTTP POST&lt;br /&gt;
[[Fájl:HTTP_POST.png]]&lt;br /&gt;
&lt;br /&gt;
=REST=&lt;br /&gt;
REST = Representational State Transfer&lt;br /&gt;
&lt;br /&gt;
==RESTful HTTP==&lt;br /&gt;
* HTTP protokoll kibövítése: GET, POST, PUT, DELETE&lt;br /&gt;
* Bemenö paraméterek: URL része, URL query string, POST paraméter, HTTP body&lt;br /&gt;
* Visszatérési érték: HTTP body&lt;br /&gt;
* nagyon egyszerü: böngészőből is tesztelhetö&lt;br /&gt;
&lt;br /&gt;
==REST alapelvei==&lt;br /&gt;
* Minden eröforráshoz azonosító rendelése&lt;br /&gt;
* Dolgok összekapcsolása&lt;br /&gt;
* CRUD müveletek használata (Create, Read, Update, Delete)&lt;br /&gt;
* Állapotmentes kommunikáció&lt;br /&gt;
&lt;br /&gt;
= Elosztott technológiák összefoglaló =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!&amp;amp;nbsp;&lt;br /&gt;
!REST&lt;br /&gt;
!RMI&lt;br /&gt;
!WS&lt;br /&gt;
!CORBA&lt;br /&gt;
|-&lt;br /&gt;
!Különbözö programnyelvek között müködik&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Kommunikációs protokoll&lt;br /&gt;
|HTTP&lt;br /&gt;
|RMI&lt;br /&gt;
|SOAP&lt;br /&gt;
|IIOP&lt;br /&gt;
|-&lt;br /&gt;
!Interfészleíró&lt;br /&gt;
|nincs/WADL&lt;br /&gt;
|Java Interface&lt;br /&gt;
|WSDL&lt;br /&gt;
|IDL&lt;br /&gt;
|-&lt;br /&gt;
!Katalógus&lt;br /&gt;
|JNDI&lt;br /&gt;
|UDDI&lt;br /&gt;
|Naming Service&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
!Elosztott&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Szakványos&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Széles körü támogatás&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Egyszerü&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|nem&lt;br /&gt;
|-&lt;br /&gt;
!Egyszerü API&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|-&lt;br /&gt;
!Gyors&lt;br /&gt;
|igen&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|-&lt;br /&gt;
!Biztonság, tranzakciók&lt;br /&gt;
|nem&lt;br /&gt;
|nem&lt;br /&gt;
|igen&lt;br /&gt;
|nem&lt;/div&gt;</summary>
		<author><name>Tank</name></author>
	</entry>
</feed>