25
RESTful webservices med JAX-RS En introduktion Av Martin Wahlman, Java- teamet

RESTful webservices med JAX-RS

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

Page 1: RESTful  webservices med JAX-RS

RESTful webservices med JAX-RS

En introduktionAv Martin Wahlman, Java-teamet

Page 2: RESTful  webservices med JAX-RS

Agenda

• RESTful webservices– Introduktion– Användningsområden

• JAX-RS– Bakgrund– Api:et– Implementationer– Exempel

• Frågor!

Page 3: RESTful  webservices med JAX-RS

RESTFUL WEBSERVICESIntroduktion

Page 4: RESTful  webservices med JAX-RS

Webservices finns överallt!

Page 5: RESTful  webservices med JAX-RS

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

Page 6: RESTful  webservices med JAX-RS

RESTful, ett annat sätt att tänka webservices

Page 7: RESTful  webservices med JAX-RS

Använder valigtvis HTTP-protokollet

GET

POST

DELETE

PUT

Page 8: RESTful  webservices med JAX-RS

Returnerar vanligtvis XML eller JSON

Mer frihet

Mindre pratigt = mindre bandbredd

Använder en browser för att testa

Lösare definierat

Page 9: RESTful  webservices med JAX-RS

En arkitektur, inte ett protokollEn URI definierar en resurs (substantiv) inte en aktion (verb)

Page 10: RESTful  webservices med JAX-RS

Riktlinjer för RESTful webservices

Page 11: RESTful  webservices med JAX-RS

Client – Server

Page 12: RESTful  webservices med JAX-RS

Stateless

Page 13: RESTful  webservices med JAX-RS

Cacheable

Page 14: RESTful  webservices med JAX-RS

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

Page 15: RESTful  webservices med JAX-RS

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

Page 16: RESTful  webservices med JAX-RS

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.

Page 17: RESTful  webservices med JAX-RS

JAX-RSEtt Java API för RESTful services

Page 18: RESTful  webservices med JAX-RS

Ett Java-API för RESTful services

Använder annotations

Annotations: Ett sätt att konfigurera ramverk direkt i java-klasser.

Page 19: RESTful  webservices med JAX-RS

JAX-RS 1.1 med som standard i Java EE 6

JAX-RS 2.0 är på G! Planerad release mitten av 2012

Page 20: RESTful  webservices med JAX-RS

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.

Page 21: RESTful  webservices med JAX-RS

Implementationer av JAX-RS

Page 22: RESTful  webservices med 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.

Page 23: RESTful  webservices med JAX-RS

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

Page 24: RESTful  webservices med JAX-RS

Exempel!

Page 25: RESTful  webservices med JAX-RS

FRÅGOR!