Java Web Services [5/5]: REST and JAX-RS

1,005 views

Published on

Presentations for Java Web Services Course, September 2010

Published in: Technology
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,005
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
104
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

Java Web Services [5/5]: REST and JAX-RS

  1. 1. Topic 5 REST and JAX-RSAssoc.Prof. Dr. Thanachart Numnonda www.imcinstitute.com August 2010
  2. 2. Agenda What is REST? REST/HTTP Methods JAX-RS 2
  3. 3. What is REST? 3
  4. 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’. 4
  5. 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 ! 5
  6. 6. Architectural overview 6
  7. 7. Architectural overview 7
  8. 8. HTTP request overview 8
  9. 9. HTTP request overview 9
  10. 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 10
  11. 11. Resource Collections – http://portal/books/ Members/Items: – http://portal/documents/mybook.doc 11
  12. 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 12
  13. 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 13
  14. 14. REST/HTTP Methods 14
  15. 15. CRUD to HTTP method mapping 15
  16. 16. CRUD Operations are Performed through “HTTP method”+“Resource”CRUD Operations HTTP method ResourceCreate (Single) POST Collection URIRead (Multiple) GET Collection URIRead (Single) GET Entry URIUpdate (Single) PUT Entry URIDelete (Single) DELETE Entry URI 16
  17. 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 17
  18. 18. HTTP Methods: GET GET to retrieve information Retrieves a given URI Idempotent, should not initiate a state change Cacheable 18
  19. 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 19
  20. 20. HTTP Methods: DELETE Remove (logical) an entity Example – DELETE /songs/heyjude Delete the song heyjude” from the system 20
  21. 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 21
  22. 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 22
  23. 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 23
  24. 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 24
  25. 25. JAX-RS 25
  26. 26. JAX-RS (JSR-311) : Goals• POJO-based,• HTTP-centric,• Format independent,• Container independent,• Availability as standalone and enterprise platforms. 26
  27. 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 27
  28. 28. POJO + Annotation = JAX-RS resource 28
  29. 29. Reading the catalog 29
  30. 30. Reading the catalog item 30
  31. 31. Address-ability through HTTP Methods• Methods: what are the HTTP methods?• HTTP methods implemented as Java methods annotated with – @POST – @GET – @PUT – @DELETE 31
  32. 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 significant The HTTP method is the method 32
  33. 33. Leading JAX-RS implementations• Glassfish Jersey project• RESTEasy(JBoss)• Apache CXF (Apache Software Foundation)• Wink (ASF incubation project)• Restlet(NoeliosTechnologies) 33
  34. 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 34
  35. 35. Thank you thananum@gmail.comwww.facebook.com/imcinstitute www.imcinstitute.com 35

×