„8. REST (2012)” változatai közötti eltérés
Tank (vitalap | szerkesztései) Nincs szerkesztési összefoglaló |
aNincs szerkesztési összefoglaló |
||
| (17 közbenső módosítás, amit 4 másik szerkesztő végzett, nincs mutatva) | |||
| 1. sor: | 1. sor: | ||
=HTTP= | =HTTP= | ||
* HTTP GET | * HTTP GET | ||
[[ | [[File:HTTP_GET.png]] | ||
* HTTP POST | * HTTP POST | ||
[[ | [[File:HTTP_POST.png]] | ||
=REST= | =REST= | ||
| 33. sor: | 32. sor: | ||
==Műveletek erőforrásokon== | ==Műveletek erőforrásokon== | ||
[[ | [[File:muv_eroforr.png]] | ||
* '''safe:''' a kliens olyan műveletet hajt végre, ami csak lekérdez, és nem tehető felelőssé az okozott mellékhatásokért | * '''safe:''' a kliens olyan műveletet hajt végre, ami csak lekérdez, és nem tehető felelőssé az okozott mellékhatásokért | ||
* '''idempotent''': a művelet ismételt végrehajtása ugyanazt az eredményt produkálja | * '''idempotent''': a művelet ismételt végrehajtása ugyanazt az eredményt produkálja | ||
| 41. sor: | 40. sor: | ||
* CRUD műveleteken kívül másra nem alkalmas | * CRUD műveleteken kívül másra nem alkalmas | ||
* Nincs interfészleíró (ami leírja a műveleteket és a paraméterek típusát (szemantikát nem, azaz kliens stub -> szerver skeleton generálás)) | * Nincs interfészleíró (ami leírja a műveleteket és a paraméterek típusát (szemantikát nem, azaz kliens stub -> szerver skeleton generálás)) | ||
* Túl sok belső részletet elárul | * Túl sok belső részletet elárul (igen, mert szemlélet más: műveletközpontú helyett adatközpontú) | ||
* Tervezési guideline-ok hiánya | * Tervezési guideline-ok hiánya | ||
* Middleware funkciók hiánya | * Middleware funkciók hiánya (nincs tranzakció kezelés, meg nem biztos hogy jönn a HTTP 200 OK válasz) | ||
* Nincs publish-subscribe ill. aszinkron kommunikáció | * 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) | ||
==JAX-RS== | |||
* JAX-RS: Java API for RESTful Web Services | |||
* Java osztályok leképzése REST erőforrásokra (annotációk) | |||
'''Számológép példa revisited'''<br /> | |||
<code> | |||
@Path("calculator") | |||
public class Calculator{ | |||
@GET | |||
@Path("add") | |||
@Produces("text/plain") | |||
public double add(@QueryParam("left") double left, @QueryParam("right") double right) { return left+right; } | |||
} | |||
</code> | |||
'''Lehetséges visszatérési értékek''' | |||
* void, null (204 no content status code) | |||
* Response | |||
* GenericEntity | |||
* egyébb | |||
* Stringet támogat, double-t nem | |||
** double-re a megoldás a "MessageBodyWriter" implementálása | |||
'''HTTP method annotációk:''' @GET, @POST, @PUT, @DELETE, @HEAD<br /> | |||
'''HTTP content-type annotációk:''' @Consumes, @Produces | |||
= Elosztott technológiák összefoglaló = | = Elosztott technológiák összefoglaló = | ||
| 73. sor: | 99. sor: | ||
|- | |- | ||
!Katalógus | !Katalógus | ||
| - | |||
|JNDI | |JNDI | ||
|UDDI | |UDDI | ||
|Naming | |Naming service | ||
|- | |- | ||
!Elosztott | !Elosztott | ||
| 119. sor: | 145. sor: | ||
|igen | |igen | ||
|nem | |nem | ||
[[Kategória:Infoszak]] | |||