Choose your language:

France
Germany
Hong Kong
India
Ireland
Japan
Malaysia
Netherlands
New Zealand
Singapore
Sweden
United Kingdom
United States

Programming REST Web Services with JAX-RS 2.0

Course Code

IN1616

Duration

2 Days

Experience with Java programming is required. Experience with Eclipse is useful but not required. An understanding of basic web architecture and the HTTP protocol is required. Prior experience with RPC-style services such as Web services, Java RMI, COM objects, etc. is helpful, but not required.
This JAX-RS 2.0 training course covers the design principles of REST architecture along with the details of how to implement these services with JAX-RS 2.0. This will allow participants who take the course to implement RESTful services using Java standards that will be portable to many different Java environments.

Although many of the services in active use are SOAP or at least XML-based, an increasing number of services take a RESTful approach to data transmission. Representational state transfer (REST) is a style of software architecture that differs from the more traditional Remote Procedure Call (RPC) style of data transmission, instead emphasizing the importance of defining and retrieving representations of resources.

This course uses the Wildfly server and Eclipse. Wildfly is the open source project for the JBoss Enterprise Application Platform and was renamed from JBoss Application Server (JBoss AS) for this version. Wildfly 8 supports Java EE 7 and JAX-RS 2.0, the version covered in this course.
This course is designed for Architects and Developers that need to design and develop RESTful web services using JAX-RS 2.0.

In this course, participants will:

  • Learn the REST style of software architecture
  • Describe the advantages and disadvantages of applying RESTful design strategies to various scenarios
  • Implement RESTful services using the JAX-RS Java specification
  • Create JAX-RS services that use various types of request/response content
  • Compare and contrast REST with RPC, SOAP, and other similar communication strategies
  • Apply fine-grained control of the responses returned from JAX-RS services
  • Use various techniques to implement clients of RESTful services
  • Apply Java EE security to JAX-RS services
  • Use advanced hypermedia techniques supported by JAX-RS 2.0
  • Implement caching and asynchronous features of REST services
CHAPTER 1 REST SERVICES
Many Flavors of Services
Understanding REST
Principles of RESTful Services
REST Resource Examples
SOAP Equivalent Examples
REST vs SOAP Communication
More REST vs SOAP
REST vs SOAP Summary
Famous RESTful Services
Additional Resources
Summary

CHAPTER 2 INTRODUCTION TO JAX-RS
The JAX-RS Specification
New In JAX-RS 2.0
The Resource Class
Configuring JAX-RS for Deployment
Implementing Service Versioning with Configuration
A Bunch of Annotations
@Path
Using Path Parameters
Path Parameters
HTTP Method Binding
More Complex Paths
Summary

CHAPTER 3 OTHER JAX-RS DATA INJECTION
Sources for Injected Data
Query Parameters
HTML Form Input
Cookies
Matrix Parameters
HTTP Headers
Default Values
Parameter Conversion
Parameter Encoding
Custom Types
Bean Validation
Summary

CHAPTER 4 DESIGNING A RESTFUL SERVICE
Introduction
The Design Methodology
Ingredients of a Service Operation Interface
What Constitutes a REST Resource
Resource Identifiers
MIME Types
HTTP Methods
Example Operation Interface Document
Web Application Description Language (WADL)
WADL Support
Summary

CHAPTER 5 JAX-RS CONTENT TYPES
Internet Media Types
Common Media Types
Use of Media Type in REST
The @Consumes Annotation
Content Negotiation
The @Produces Annotation
The MediaType Class
JAXB
Dynamic Content Negotiation
Summary

CHAPTER 6 BUILDING COMPLEX JAX-RS RESPONSES
HTTP Response Status Codes
Introduction to the JAX-RS Response Class
Using the Response and Response.ResponseBuilder Classes
Building a Location for an Entity
Returning Cookies
Cookies in Response Headers
Reading Cookies
Returning an Exception
ExceptionMappers
Summary

CHAPTER 7 CLIENTS OF JAX-RS SERVICES
Java Web Service Clients
JAX-RS 2.0 Client Libraries
JAX-RS 2.0 Client Example
Client Instances
WebTarget
Building and Invoking Requests
WADL
WADL Example
JAX-RS Implementation Client Libraries
RESTEasy Example
Summary

CHAPTER 8 SECURING JAX-RS SERVICES
HTTP Basic Authentication
Example Client
The WWW-Authenticate and Authorization Headers
Java EE Security Roles
Integration with Web Container Security
Java EE Security Annotations
SecurityContext
Restrictions Based on Content Type
Summary

CHAPTER 9 HYPERMEDIA AND REST SERVICES (HATEOAS)
HATEOAS
Using Hypermedia
Building Links and Targets
Using Atom Links for State Transitions
Summary

CHAPTER 10 CACHING AND ASYNCHRONOUS INTERACTION
Caching and REST Services
Approaches to Caching
HTTP Cache Headers
Example: Conditional HTTP GET
Conditional Updates
Asynchronous Interaction
Futures and Callbacks
Server Asynchronous Response Processing
Summary
Send Us a Message
Choose one