„8. REST (2012)” változatai közötti eltérés

Tank (vitalap | szerkesztései)
Csia Klaudia Kitti (vitalap | szerkesztései)
aNincs szerkesztési összefoglaló
 
(20 közbenső módosítás, amit 4 másik szerkesztő végzett, nincs mutatva)
1. sor: 1. sor:
{{Csonk}}


=HTTP=
=HTTP=
* HTTP GET
* HTTP GET
[[Fájl:HTTP_GET.png]]
[[File:HTTP_GET.png]]
* HTTP POST
* HTTP POST
[[Fájl:HTTP_POST.png]]
[[File:HTTP_POST.png]]


=REST=
=REST=
22. sor: 21. sor:
* CRUD müveletek használata (Create, Read, Update, Delete)
* CRUD müveletek használata (Create, Read, Update, Delete)
* Állapotmentes kommunikáció
* Állapotmentes kommunikáció
==Műveletek erőforrásokon==
[[Fájl: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
* '''idempotent''': a művelet ismételt végrehajtása ugyanazt az eredményt produkálja
* '''cacheable''': 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.


==Többféle adatreprezentáció==
==Többféle adatreprezentáció==
38. sor: 30. sor:
*De az alkalmazásnak lehet állapota (kliens oldalon, erőforrásban tárolva)
*De az alkalmazásnak lehet állapota (kliens oldalon, erőforrásban tárolva)
*Skálázhatósági előnyök emiatt (nincs session, felcserélhető szerverek)
*Skálázhatósági előnyök emiatt (nincs session, felcserélhető szerverek)
==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
* '''idempotent''': a művelet ismételt végrehajtása ugyanazt az eredményt produkálja
* '''cacheable''': 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.
==REST kritikák==
* 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))
* 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
* Middleware funkciók hiánya (nincs tranzakció kezelés, meg nem biztos hogy jönn a HTTP 200 OK válasz)
* 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ó =
66. sor: 99. sor:
|-
|-
!Katalógus
!Katalógus
| -
|JNDI
|JNDI
|UDDI
|UDDI
|Naming Service
|Naming service
| -
|-
|-
!Elosztott
!Elosztott
112. sor: 145. sor:
|igen
|igen
|nem
|nem
[[Kategória:Infoszak]]
A lap eredeti címe: „https://vik.wiki/8._REST_(2012)