Upload
christopher-monroe
View
78
Download
0
Embed Size (px)
DESCRIPTION
RESTful webservices med JAX-RS. En introduktion Av Martin Wahlman, Java-teamet. Agenda. RESTful webservices Introduktion Användningsområden JAX-RS Bakgrund Api:et Implementationer Exempel Frågor!. Introduktion. RESTful webservices. Webservices finns överallt!. - PowerPoint PPT Presentation
Citation preview
RESTful webservices med JAX-RS
En introduktionAv Martin Wahlman, Java-teamet
Agenda
• RESTful webservices– Introduktion– Användningsområden
• JAX-RS– Bakgrund– Api:et– Implementationer– Exempel
• Frågor!
RESTFUL WEBSERVICESIntroduktion
Webservices finns överallt!
SOAP har funnits länge
Baserat på XMLMycket pratigt!
<?xml version="1.0"?><soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope"> <soap:Header> </soap:Header> <soap:Body> <m:GetStockPrice xmlns:m="http://www.example.org/stock"> <m:StockName>IBM</m:StockName> </m:GetStockPrice> </soap:Body></soap:Envelope>
Väletablerat
SoapUI används för att testa webservicen
Metodbaserat
RESTful, ett annat sätt att tänka webservices
Använder valigtvis HTTP-protokollet
GET
POST
DELETE
PUT
Returnerar vanligtvis XML eller JSON
Mer frihet
Mindre pratigt = mindre bandbredd
Använder en browser för att testa
Lösare definierat
En arkitektur, inte ett protokollEn URI definierar en resurs (substantiv) inte en aktion (verb)
Riktlinjer för RESTful webservices
Client – Server
Stateless
Cacheable
Uniform Interface
DatabasServerKlient GET en bil av en viss modell Select car
Representation av bilen
POST ändring av färg på bilen Update carOperationen lyckadPUT ny bil
Insert carOperationen lyckad
DELETE bil Remove car
Operationen lyckad
Användningsområden
Rika Webbapplikationer
Mobila applikationer
Överhuvudtaget applikationer med ett rikt klientgränssnitt!
Klientapplikationer som behöver ett snabbt och lätt API mot servern
För och nackdelar
+ Du är inte beroende av XML och SOAP.+ Lätt-testat från browsern.+ Mycket standardiserat protokoll, GET, PUT, POST, DELETE.+ Liten overhead.+ Enkel och lättförståelig arkitektur.+ Gömmer inget under ytan
- Det kan ibland vara svårt att tänka resurser och inte funktioner.- Det finns ingen standardiserad implementation.- WSDL har ett mycket välstrukturerat innehåll.- WSDL har ett mycket väldefinierat kontrakt.- Protokoll beroende.
JAX-RSEtt Java API för RESTful services
Ett Java-API för RESTful services
Använder annotations
Annotations: Ett sätt att konfigurera ramverk direkt i java-klasser.
JAX-RS 1.1 med som standard i Java EE 6
JAX-RS 2.0 är på G! Planerad release mitten av 2012
Annoteringar i API:et
• @Path – Ingången till en RESTful service. Här anger du vilken path som ska vara accesspunkt till denna resurs i servicen.
• @GET, @PUT, @POST, @DELETE, @HEAD – Beskriver typ av accesspunkt.
• @Produces – Vilken mimetype som funktionen ska returnera. Kan exempelvis vara JSON, XML eller text.
• @Consumes – Vilken mimetype som kan tas emot av funktionen.
• @PathParam, @QueryParam, @MatrixParam, @HeaderParam, @CookieParam, @FormParam, @DefaultValue – Används för att binda parametrar som kommer med requestet till paramterar i funktionen.
Implementationer av JAX-RS
Apache CXF- Större biblotek som inkluderar flera specifikationer såsom JAX-WS, JAX-RS.- Inte bara ett REST bibliotek. Mest känd för sin SOAP funktionalitet.
Jersey- Oracles (tidigare suns) referens-implementation. Skeppas INTE med JDK:n.- Integrerar väl med Spring.- Lätt att extenda.
RESTEasy- JBOSS implementation av JAX-RS.- Lätt att börja använda om man använder JBOSS och Seam sen tidigare.
Restlet- OpenSource ramverk som är lite av en pionjär. Fanns innan JAX-RS.- Mycket bra och aktivt community.
Nyheter i 2.0?
Ett API för klient-applikationer i JAVA
Hanterare (filter)
Validering av data genom Bean Validation API
Förbättrat stöd för Java Dependency Injection API
Exempel!
FRÅGOR!