java web services [5/5]: rest and jax-rs

Post on 18-Dec-2014

478 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

Presentations for Java Web Services Course, September 2010

TRANSCRIPT

Assoc.Prof. Dr. Thanachart Numnondawww.imcinstitute.com

August 2010

Topic 5

REST and JAX-RS

2

Agenda

What is REST?

REST/HTTP Methods

JAX-RS

3

What is REST?

4

REST : Definition [Wikipedia]

Representational State Transfer a style of software architecture for distributed

hypermedia systems such as the World Wide Web.

was introduced and defined in 2000 by Roy Fielding in his doctoral dissertation.

Conforming to the REST constraints is referred to as being ‘RESTful’.

5

REST is ...

An architectural style, not technology– Client/server + Request/response approach.

Everything is a RESOURCE. CRUD (Create / Read / Update / Delete) Stateless by nature (excellent for distributed

systems) Cacheable (naturally supported !) A great way to web-service !

6

Architectural overview

7

Architectural overview

8

HTTP request overview

9

HTTP request overview

10

Everything is a resource …

A resource is …– A network-accessible data object or service

identified by an URI:– Images,– Documents (HTML, PDF, …),– Geo-location,– Weather

11

Resource

Collections– http://portal/books/

Members/Items:– http://portal/documents/mybook.doc

12

Characteristics of REST

RESTful services are stateless– Each request from client to server must contain all

the information necessary to understand the request

RESTful services have a uniform interface– GET, POST, PUT, and DELETE.

REST-based architectures are built from resources (pieces of information) that are uniquely identified by URIs

– In a RESTful purchasing system, each purchase order has a unique URI

13

Characteristics of REST

REST components manipulate resources by exchanging representations of the resources

– For example, a purchase order resource can be represented by an XML document.

– Within a RESTful purchasing system, a purchase order might be updated by posting an XML document containing the changed purchase order to its URI

REST-based architectures communicate primarily through the transfer of representations of resources

– State is maintained within a resource representation

14

REST/HTTP Methods

15

CRUD to HTTP method mapping

16

CRUD Operations are Performed through “HTTP

method”+“Resource”

CRUD Operations HTTP method Resource

Create (Single) POST Collection URI

Read (Multiple) GET Collection URI

Read (Single) GET Entry URI

Update (Single) PUT Entry URI

Delete (Single) DELETE Entry URI

17

HTTP Methods

/books/– POST - submit a new book– GET - list all books

/books/{isbn}/– GET - get a book– PUT - update a book– DELETE - remove a book

18

HTTP Methods: GET

GET to retrieve information Retrieves a given URI Idempotent, should not initiate a state change Cacheable

19

HTTP Methods: POST

POST to add new information add the entity as a subordinate/append to the

POSTed resource Example

– POST /music/beatles

Adds the music specified in the POSTDATA to the

list of music

20

HTTP Methods: DELETE

Remove (logical) an entity Example

– DELETE /songs/heyjude

Delete the song 'heyjude” from the system

21

HTTP Methods: POST

POST to add new information add the entity as a subordinate/append to the

POSTed resource Example

– POST /music/beatles

Adds the music specified in the POSTDATA to the

list of music

22

Why REST ?

• Uniformity:– URI is a uniform way to identify resources– HTTP uniform interface to manipulate resources

• REST base services are easy to work with– Do not need specialized API, just need to

understand HTTP and browser for experimentation

• Scripting language friendly– Easy to consume and develop

23

Advantages of REST

• Its architectural constraints when applied as a whole, generate:

– Scalable component interactions– General interfaces– Independently deployed connectors– Reduced interaction latency– Strengthened security– Safe encapsulation of legacy systems

24

REST vs “Big” Web Services

• “Big” web service– Few URIs (nouns), many custom methods

(verbs)• musicPort.getRecordings(“beatles”)

– Uses HTTP as transport for SOAP messages

• RESTful web service– Many resources (nouns), few fixed

methods(verbs)• GET /music/artists/beatles/recordings

– HTTP is the protocol

25

JAX-RS

26

JAX-RS (JSR-311) : Goals

• POJO-based,

• HTTP-centric,

• Format independent,

• Container independent,

• Availability as standalone and enterprise platforms.

27

JAX-RS: Address-ability through URI

• A Web service exposes data as resources

• A resource is exposed through a URI

• Resources are “plain old” Java classes and methods

• The annotation @Path exposes a resource

• Think resources and URIs using Java classes and @Path

28

POJO + Annotation = JAX-RS resource

29

Reading the catalog

30

Reading the catalog item

31

Address-ability through HTTP Methods

• Methods: what are the HTTP methods?

• HTTP methods implemented as Java methods annotated with

– @POST– @GET – @PUT

– @DELETE

32

Uniform interface: methods on root resources

@Path(“/books/”)class books { @POST <type> create(<type>) { ... } @GET <type> get() { ... }}

@Path(“/books/{isbn}/”)class book { @GET <type> get(...) { ... } @PUT void update(...) { ... } @DELETE void delete(...) { ... }}

Java method name is not significantThe HTTP method is the method

33

Leading JAX-RS implementations

• Glassfish Jersey project

• RESTEasy(JBoss)

• Apache CXF (Apache Software Foundation)

• Wink (ASF incubation project)

• Restlet(NoeliosTechnologies)

34

Resources

Some contents are borrowed from the presentation slides of Sang Shin, Java™ Technology Evangelist, Sun Microsystems, Inc.

JAX-RS… and the REST will follow, Guy Nir, Java Edge 09

35

Thank you

thananum@gmail.com

www.facebook.com/imcinstitute

www.imcinstitute.com

top related