Topics |
|
|
|
What you will learn |
|
After completing this course, the student should be able to:
|
|
Audience |
|
This course is applicable for Architects and Developersthat need to design and develop RESTful web services using JAX-RS. |
|
Prerequisites |
|
Experience with Java programming is required. Experience with Eclipse is useful but not required. For those that might need this Java or Eclipse experience the following course is suggested:
An understanding of basic web architecture and the HTTP protocol. Prior experience with RPC-style services such as Web services, Java RMI, COM objects, etc. is helpful, but not required. |
|
Duration |
|
4 days. |
Outline for Mastering JAX-RS REST Web Services and AJAX Clients - JBoss / Eclipse Training
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
- The Resource Class
- A Bunch of Annotations
- @Path
- Using Path Parameters
- HTTP Method Binding
- More Complex Paths
- Configuring JAX-RS for Deployment
- Summary
Chapter 3. JAX-RS Data Injection
- Sources for Injected Data
- Path Parameters
- Query Parameters
- HTML Form Input
- Cookies
- Matrix Parameters
- HTTP Headers
- Default Values
- Parameter Conversion
- Custom Types
- 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
- 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
- Example: Conditional HTTP GET
- Returning Cookies
- Cookies in Response Headers
- Reading Cookies
- Returning an Exception
- ExceptionMappers
- Summary
Chapter 7. REST vs. SOAP
- Defining REST
- The Six REST Architectural Style Constraints
- The Four REST Interface Constraints
- Hypermedia Examples
- Defining SOAP
- RPC SOAP vs. REST
- Document SOAP vs. REST
- Where SOAP Shines
- Where REST Shines
- Selecting an Appropriate Solution
- Summary
Chapter 8. Clients of JAX-RS Services
- Java Web Service Clients
- Apache HttpClient
- More Apache HttpClient Code
- JAX-RS Implementation Client Libraries
- RESTEasy Example
- HATEOAS
- Building Links with UriBuilder and UriInfo
- Using Atom Links for State Transitions
- WADL
- WADL Example
- Summary
Chapter 9. Introduction to AJAX
- What is AJAX?
- A Simple Example
- The Old Way
- The AJAX Way
- Two Key Aspects of AJAX
- What are the Advantages of the AJAX Approach?
- AJAX Technologies
- The Basic AJAX API
- Creating the XMLHttpRequest Object
- The XMLHttpRequest Object Basics
- Complete Example
- The Timeline
- Review Questions
- Review Answers
Chapter 10. AJAX API Details
- The Request Object
- Creating the Request Object
- Properties of the Request Object
- Methods of the Request Object
- Simple GET Example
- Making a POST Request
- Making Concurrent Requests
- Memory Leak With Inner Function
- A POST Utility Function
- Mozilla XmlHttpRequest Extensions
- IE Microsoft.XMLHTTP Extensions
- Ajax Caching
- Control Cache Duration
- Advanced Cache Control
- Summary
Chapter 11. JavaScript DOM API
- What is DOM?
- Element Hierarchy
- DOM Standardization
- The Document Object
- Nodes and Elements
- The Element Object
- Element Event Handlers
- The window Object
- The Frame Object
- The History Object
- Summary
Chapter 12. Communication With Server - Basic
- Introduction
- Application Layer Protocol
- Choosing a Data Format
- Plain HTML Snippet
- XML Document
- XML Document – Server Side
- Example: Build DOM Document in Java
- Example: Write DOM Document in HTTP Reply
- Example: The Servlet
- C#: Create a XML DOM Document
- C#: Output XML in HTTP Reply
- XML Document - Client Side
- DOM API Summary
- DOM API – The Document Object
- DOM API – The Element Object
- Body Text of an Element
- Setting Body Text
- Displaying Body Text
- Using XML As Request Data
- Creating a New DOM Document
- Serializing DOM Document as Text
- Posting an XML Document
- Processing the Posted XML From a Servlet
- Summary
Chapter 13. Communication With Server - JSON
- Introduction
- JavaScript Object Notation (JSON)
- JSON Syntax
- How Does JSON Based Communication Work?
- JSON API in HTML5
- How Does JSON Based Communication Work?
- JSON: Server Side
- JSON: Client Side
- Working With Arrays
- Advanced JSONObject Methods
- Advanced JSONArray Methods
- Summary
Chapter 14. 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