Course duration
- 3 days
Course Benefits
- Understand the purpose and role of web services in general, and how they are architected to expose business systems and processes over the web
- Understand the concepts and principles of REST and HTTP applications
- Expanded knowledge of HTTP, including its full set of methods and their intended uses, important headers, response codes, and content types
- Understand REST APIs, including resource identifiers and the URI namespace, resources and subresources, and WADL
- Understand configuration, deployment, and the runtime environment, including per-request and singleton objects, options for dependency injection, etc.
- Understand how HTTP requests get dispatched to service methods
- Understand content negotiation and the importance of Accept and Content-Type headers, and how they impact method dispatching
- Bind request inputs to method parameters, including path parameters, query parameters, and headers
- Exchange business data by communicating in HTTP entities in both XML and JSON format
- Handle errors using Java exceptions and appropriate HTTP response codes
- Learn how to integrate JAX-RS services with other Java EE technologies like servlets, EJB, and CDI, and how JAX-RS fits into the larger Java EE landscape
- Write browser clients using Ajax-JavaScript
- Write Java clients using the JAX-RS 2.0 Client API, including standalone clients and server-side components invoking remote services
- Learn how to secure RESTful resources
Public expert-led online training from the convenience of your home, office or anywhere with an internet connection. Guaranteed to run .
Private classes are delivered for groups at your offices or a location of your choice.
Course Outline
- Web Services Overview
- Definition
- Legacy Systems
- Benefits of Web Services
- Architecture
- Standards and Portability
- XML and Related Standards
- JSON
- HTTP
- SOAP-Based Services
- Overview
- SOAP Messages, Requests, and Responses
- WSDL
- Java APIs and Programming Models
- Introduction to REST
- Overview and Principles
- REST Characteristics
- Resources and Operations
- REST Principles
- Requests and Responses
- REST APIs
- URI Templates
- GET, POST, PUT, DELETE
- Safe and Idempotent Methods
- Comparison of REST and SOAP
- Introduction to JAX-RS
- APIs and Implementations
- JAX-RS Overview, Annotations
- JAX-RS Implementations
- Runtime Environment
- Application Server, Servlet-Only Container
- Architectural and Implementation Perspectives
- Configuring the Application
- Applications, Resources, and Providers
- JAX-RS Applications
- Resource Classes and @Path
- Provider Classes and @Provider
- Default Lifecycles
- The Application Class and rest-path
- Ajax-JavaScript Clients
- Overview
- Classic vs. Ajax Interactions
- Working with Ajax-JavaScript
- Resources and Requests
- Resources and Subresources
- Root Resource Classes, Resource Methods, Subresource Methods
- @GET, @POST, @PUT, @DELETE
- Subresource Locators
- Naming Conventions and Rules
- Dispatching Requests to Methods
- Binding Request Data
- Request Data Injection and Conversion
- Default Values
- Fields vs. Method Parameters
- Context-Based Injection
- Injection via @Context
- Context-Injectable Types
- Context Injection from the Web Container
- Fields vs. Method Parameters
- HTTP Entities
- Complex Content and Entities
- Working with Complex Content
- @Consumes and @Produces
- Content Negotiation
- Standard Entity Providers
- Working with JSON
- Returning Data as JSON
- Working with JSON in JavaScript
- Processing JSON Responses
- Working with XML
- JAXB and Mapping to XML
- Returning Data as XML
- Working with XML on the Client
- Customizing Content, Custom Media Types
- Working with Collections
- XML vs. JSON
- Responses
- Response Class
- Return Types and HTTP Response Codes
- Appropriate Responses for HTTP Methods
- Choosing the Right Response
- Error Handling
- Exception Mappers
- WebApplicationException
- Response vs. Thrown Exception
- Error Responses
- Subresource Locators
- Motivation and Uses
- Locating the Locator
- Initializing the Subresource
- Binary Content
- File, InputStream, StreamingOutput
- Using StreamingOutput
- Java Client API
- Java Client - Options and Ingredients
- Building and Sending the Request
- Consuming the Response
- Options for the Response Data
- Asynchronous Requests
- SIntegration with Java EE
- Integration with EJB
- CDI - Contexts and Dependency Injection
- Activation, Scopes, and JAX-RS Lifecycles
- Injection in CDI-Enabled JAX-RS Applications
- Enhanced Java EE Lifecycle
- Security
- Java EE Security Overview
- Security Requirements in JAX-RS
- Declarative, Role-Based Security
- Security Constraints
- Annotation-Based Security
- Authentication
- Configuration
- Authentication Models: Basic, Digest, Client-Cert
- Programmatic Security
- SecurityContext
- Client Security
- HTTPS
Class Materials
Each student will receive a comprehensive set of materials, including course notes and all the class examples.
Instructor-led courses are offered via a live Web connection, at client sites throughout Europe, and at our Geneva Training Center.