RESTful webszolgáltatások [601867]
RESTful webszolgáltatások
Web alkalmazások fejlesztése JAX-RS segítségével
Balla Tamás
Babeș-Bolyai Tudományegyetem
Matematika és Informatika kar
Informatika szak
Témavezető: dr. Ruff Laura
2016. június 29.
Balla Tamás (UBB) RESTful webszolgáltatások 2016. június 29. 1 / 13
Tartalomjegyzék
1Alapok
2REST Jellemzői
3Alkalmazás készítéséhez használt technológiák
4JAX-RS Jersey
5Szolgáltatások elérése
6Alkalmazás bemutatása
Balla Tamás (UBB) RESTful webszolgáltatások 2016. június 29. 2 / 13
Meghatározás
REST
Representational State Transfer
Alapítója
Roy Fielding – doktori disszertációjában, 2000-ben
Mi a REST?
Kliens – szerver architektúra
A kliens HTTP üzenetek segítségével kommunikál a szerverrel
Állapot nélküli kommunikációra tervezett
Balla Tamás (UBB) RESTful webszolgáltatások 2016. június 29. 3 / 13
Meghatározás
REST
Representational State Transfer
Alapítója
Roy Fielding – doktori disszertációjában, 2000-ben
Mi a REST?
Kliens – szerver architektúra
A kliens HTTP üzenetek segítségével kommunikál a szerverrel
Állapot nélküli kommunikációra tervezett
Balla Tamás (UBB) RESTful webszolgáltatások 2016. június 29. 3 / 13
Meghatározás
REST
Representational State Transfer
Alapítója
Roy Fielding – doktori disszertációjában, 2000-ben
Mi a REST?
Kliens – szerver architektúra
A kliens HTTP üzenetek segítségével kommunikál a szerverrel
Állapot nélküli kommunikációra tervezett
Balla Tamás (UBB) RESTful webszolgáltatások 2016. június 29. 3 / 13
Meghatározás
REST
Representational State Transfer
Alapítója
Roy Fielding – doktori disszertációjában, 2000-ben
Mi a REST?
Kliens – szerver architektúra
A kliens HTTP üzenetek segítségével kommunikál a szerverrel
Állapot nélküli kommunikációra tervezett
Balla Tamás (UBB) RESTful webszolgáltatások 2016. június 29. 3 / 13
Meghatározás
REST
Representational State Transfer
Alapítója
Roy Fielding – doktori disszertációjában, 2000-ben
Mi a REST?
Kliens – szerver architektúra
A kliens HTTP üzenetek segítségével kommunikál a szerverrel
Állapot nélküli kommunikációra tervezett
Balla Tamás (UBB) RESTful webszolgáltatások 2016. június 29. 3 / 13
Meghatározás
REST
Representational State Transfer
Alapítója
Roy Fielding – doktori disszertációjában, 2000-ben
Mi a REST?
Kliens – szerver architektúra
A kliens HTTP üzenetek segítségével kommunikál a szerverrel
Állapot nélküli kommunikációra tervezett
Balla Tamás (UBB) RESTful webszolgáltatások 2016. június 29. 3 / 13
REST
Tulajdonságok
Az adatok és műveletek erőforrásokként vannak kezelve
Erőforrásokat URI-k segítségével érhetünk el (URL, URN)
Önleíró üzenetek jellemzik
Az erőforrások manipulációja (HTTP analógia)
GET – erőforrás lekérése
POST – erőforrás aktuális állapotának a felülírása
PUT – erőforrás létrehozása
DELETE – erőforrás törlése
Erőforrások reprezentációja: XML, JSON, HTML, PDF, JPEG, MIME
Types (Média típusok), stb.
Erőforrással kapcsolatos meta adatok
Balla Tamás (UBB) RESTful webszolgáltatások 2016. június 29. 4 / 13
REST
Tulajdonságok
Az adatok és műveletek erőforrásokként vannak kezelve
Erőforrásokat URI-k segítségével érhetünk el (URL, URN)
Önleíró üzenetek jellemzik
Az erőforrások manipulációja (HTTP analógia)
GET – erőforrás lekérése
POST – erőforrás aktuális állapotának a felülírása
PUT – erőforrás létrehozása
DELETE – erőforrás törlése
Erőforrások reprezentációja: XML, JSON, HTML, PDF, JPEG, MIME
Types (Média típusok), stb.
Erőforrással kapcsolatos meta adatok
Balla Tamás (UBB) RESTful webszolgáltatások 2016. június 29. 4 / 13
REST
Tulajdonságok
Az adatok és műveletek erőforrásokként vannak kezelve
Erőforrásokat URI-k segítségével érhetünk el (URL, URN)
Önleíró üzenetek jellemzik
Az erőforrások manipulációja (HTTP analógia)
GET – erőforrás lekérése
POST – erőforrás aktuális állapotának a felülírása
PUT – erőforrás létrehozása
DELETE – erőforrás törlése
Erőforrások reprezentációja: XML, JSON, HTML, PDF, JPEG, MIME
Types (Média típusok), stb.
Erőforrással kapcsolatos meta adatok
Balla Tamás (UBB) RESTful webszolgáltatások 2016. június 29. 4 / 13
REST
Tulajdonságok
Az adatok és műveletek erőforrásokként vannak kezelve
Erőforrásokat URI-k segítségével érhetünk el (URL, URN)
Önleíró üzenetek jellemzik
Az erőforrások manipulációja (HTTP analógia)
GET – erőforrás lekérése
POST – erőforrás aktuális állapotának a felülírása
PUT – erőforrás létrehozása
DELETE – erőforrás törlése
Erőforrások reprezentációja: XML, JSON, HTML, PDF, JPEG, MIME
Types (Média típusok), stb.
Erőforrással kapcsolatos meta adatok
Balla Tamás (UBB) RESTful webszolgáltatások 2016. június 29. 4 / 13
REST
Tulajdonságok
Az adatok és műveletek erőforrásokként vannak kezelve
Erőforrásokat URI-k segítségével érhetünk el (URL, URN)
Önleíró üzenetek jellemzik
Az erőforrások manipulációja (HTTP analógia)
GET – erőforrás lekérése
POST – erőforrás aktuális állapotának a felülírása
PUT – erőforrás létrehozása
DELETE – erőforrás törlése
Erőforrások reprezentációja: XML, JSON, HTML, PDF, JPEG, MIME
Types (Média típusok), stb.
Erőforrással kapcsolatos meta adatok
Balla Tamás (UBB) RESTful webszolgáltatások 2016. június 29. 4 / 13
REST
Tulajdonságok
Az adatok és műveletek erőforrásokként vannak kezelve
Erőforrásokat URI-k segítségével érhetünk el (URL, URN)
Önleíró üzenetek jellemzik
Az erőforrások manipulációja (HTTP analógia)
GET – erőforrás lekérése
POST – erőforrás aktuális állapotának a felülírása
PUT – erőforrás létrehozása
DELETE – erőforrás törlése
Erőforrások reprezentációja: XML, JSON, HTML, PDF, JPEG, MIME
Types (Média típusok), stb.
Erőforrással kapcsolatos meta adatok
Balla Tamás (UBB) RESTful webszolgáltatások 2016. június 29. 4 / 13
REST
Tulajdonságok
Az adatok és műveletek erőforrásokként vannak kezelve
Erőforrásokat URI-k segítségével érhetünk el (URL, URN)
Önleíró üzenetek jellemzik
Az erőforrások manipulációja (HTTP analógia)
GET – erőforrás lekérése
POST – erőforrás aktuális állapotának a felülírása
PUT – erőforrás létrehozása
DELETE – erőforrás törlése
Erőforrások reprezentációja: XML, JSON, HTML, PDF, JPEG, MIME
Types (Média típusok), stb.
Erőforrással kapcsolatos meta adatok
Balla Tamás (UBB) RESTful webszolgáltatások 2016. június 29. 4 / 13
Alkalmazás készítéséhez használt technológiák
Felhasznált technológiák
Maven alapú java projekt
Szerver oldal
Java EE – webalkalmazás
JAX-RS / Jersey
Alkalmazás szerver – Tomcat v7.0, Jetty
Adatbázis használat – MySQL
Hibernate ORM
Kliens oldal
HTML, CSS
AngularJS
MVC alapú javascript framework
kommunikáció a webszolgáltatásokkal, aszinkron hívásokkal
jQuery
PDFJS
Balla Tamás (UBB) RESTful webszolgáltatások 2016. június 29. 5 / 13
Alkalmazás készítéséhez használt technológiák
Felhasznált technológiák
Maven alapú java projekt
Szerver oldal
Java EE – webalkalmazás
JAX-RS / Jersey
Alkalmazás szerver – Tomcat v7.0, Jetty
Adatbázis használat – MySQL
Hibernate ORM
Kliens oldal
HTML, CSS
AngularJS
MVC alapú javascript framework
kommunikáció a webszolgáltatásokkal, aszinkron hívásokkal
jQuery
PDFJS
Balla Tamás (UBB) RESTful webszolgáltatások 2016. június 29. 5 / 13
Alkalmazás készítéséhez használt technológiák
Felhasznált technológiák
Maven alapú java projekt
Szerver oldal
Java EE – webalkalmazás
JAX-RS / Jersey
Alkalmazás szerver – Tomcat v7.0, Jetty
Adatbázis használat – MySQL
Hibernate ORM
Kliens oldal
HTML, CSS
AngularJS
MVC alapú javascript framework
kommunikáció a webszolgáltatásokkal, aszinkron hívásokkal
jQuery
PDFJS
Balla Tamás (UBB) RESTful webszolgáltatások 2016. június 29. 5 / 13
Alkalmazás készítéséhez használt technológiák
Felhasznált technológiák
Maven alapú java projekt
Szerver oldal
Java EE – webalkalmazás
JAX-RS / Jersey
Alkalmazás szerver – Tomcat v7.0, Jetty
Adatbázis használat – MySQL
Hibernate ORM
Kliens oldal
HTML, CSS
AngularJS
MVC alapú javascript framework
kommunikáció a webszolgáltatásokkal, aszinkron hívásokkal
jQuery
PDFJS
Balla Tamás (UBB) RESTful webszolgáltatások 2016. június 29. 5 / 13
Alkalmazás készítéséhez használt technológiák
Felhasznált technológiák
Maven alapú java projekt
Szerver oldal
Java EE – webalkalmazás
JAX-RS / Jersey
Alkalmazás szerver – Tomcat v7.0, Jetty
Adatbázis használat – MySQL
Hibernate ORM
Kliens oldal
HTML, CSS
AngularJS
MVC alapú javascript framework
kommunikáció a webszolgáltatásokkal, aszinkron hívásokkal
jQuery
PDFJS
Balla Tamás (UBB) RESTful webszolgáltatások 2016. június 29. 5 / 13
Server
JAX-RS – Java API for RESTful Web Services
Jersey
JAX-RS (JSR 311 & JSR 339) specifikáció – referencia implementáció
Annotációkon alapszik
Milyen útvonalon lesz elérhető a szolgáltatás @Path
HTTP method @GET, @POST, @PUT, @DELETE, @HEAD
HTTP content-type annotációk @Consumes, @Produces
Paraméter annotációk @PathParam, @QueryParam, @FormParam
Balla Tamás (UBB) RESTful webszolgáltatások 2016. június 29. 6 / 13
Server
JAX-RS – Java API for RESTful Web Services
Jersey
JAX-RS (JSR 311 & JSR 339) specifikáció – referencia implementáció
Annotációkon alapszik
Milyen útvonalon lesz elérhető a szolgáltatás @Path
HTTP method @GET, @POST, @PUT, @DELETE, @HEAD
HTTP content-type annotációk @Consumes, @Produces
Paraméter annotációk @PathParam, @QueryParam, @FormParam
Balla Tamás (UBB) RESTful webszolgáltatások 2016. június 29. 6 / 13
Server
JAX-RS – Java API for RESTful Web Services
Jersey
JAX-RS (JSR 311 & JSR 339) specifikáció – referencia implementáció
Annotációkon alapszik
Milyen útvonalon lesz elérhető a szolgáltatás @Path
HTTP method @GET, @POST, @PUT, @DELETE, @HEAD
HTTP content-type annotációk @Consumes, @Produces
Paraméter annotációk @PathParam, @QueryParam, @FormParam
Balla Tamás (UBB) RESTful webszolgáltatások 2016. június 29. 6 / 13
Jersey példa kód
@Path (" sheet ")
public class RestSheetMusic {
@GET
@Path ("/ SheetmusicBySheetID /{ id}")
@Produces ({ MediaType . APPLICATION_JSON })
public SheetMusic sheetm ( @PathParam ("id") Integer id) {
SMServiceImpl service = new SMServiceImpl ();
SheetMusic sm = service . getSheetmusicById (id);
return sm;
}
@PUT
@Consumes ({ MediaType . APPLICATION_JSON })
@Produces ({ MediaType . APPLICATION_JSON })
public SheetMusic addSheetMusic ( User user ) {
SMServiceImpl service = new SMServiceImpl ();
return service . insertSheetmusic ( user );
}
}
Balla Tamás (UBB) RESTful webszolgáltatások 2016. június 29. 7 / 13
Szolgáltatások elérése
AngularJS aszinkron hívás
Parancssorból curlsegítségével
curl -v GET
http://localhost:8080/BscProject/rest/sheet/getAllInstrument -H
’Accept:application/json’
Balla Tamás (UBB) RESTful webszolgáltatások 2016. június 29. 8 / 13
Szolgáltatások elérése
AngularJS aszinkron hívás
Parancssorból curlsegítségével
curl -v GET
http://localhost:8080/BscProject/rest/sheet/getAllInstrument -H
’Accept:application/json’
Balla Tamás (UBB) RESTful webszolgáltatások 2016. június 29. 8 / 13
Szolgáltatások elérése
curl – Kérés Header – Válasz Header
> GET /BscProject/rest/sheet/getAllInstrument HTTP/1.1
> Host: localhost:8080
> User-Agent: curl/7.46.0
> Accept: */*
> ’Accept:application/json’
>
< HTTP/1.1 200 OK
< Server: Apache-Coyote/1.1
< Content-Type: application/json
< Transfer-Encoding: chunked
< Date: Fri, 27 May 2016 15:22:35 GMT
Balla Tamás (UBB) RESTful webszolgáltatások 2016. június 29. 9 / 13
Szolgáltatások elérése
Válasz
Balla Tamás (UBB) RESTful webszolgáltatások 2016. június 29. 10 / 13
Alkalmazás bemutatása
Alkalmazás élő bemutatása
Balla Tamás (UBB) RESTful webszolgáltatások 2016. június 29. 11 / 13
Jersey hivatalos oldala
AngularJS hivatalos oldala
Roy Fideling – Dissertation
JAX-RS hivatalos dokumentáció
Curl hivatalos dokumentáció
Balla Tamás (UBB) RESTful webszolgáltatások 2016. június 29. 12 / 13
Köszönöm a figyelmet!
Balla Tamás (UBB) RESTful webszolgáltatások 2016. június 29. 13 / 13
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: RESTful webszolgáltatások [601867] (ID: 601867)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
