Module 01 : 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
Module 02 : Introduction
- 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
Module 03 : 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
Module 04 : Resources and Requests
Resources and Sub-Resources, Root Resource Classes, Resource Methods, Sub Resource Methods @GET, @POST, @PUT, @DELETE
- Sub Resource 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
Module 05 : 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
Module 06 : Responses
Response Class, Return Types and HTTP Response Codes
- Appropriate Responses for HTTP Methods
- Choosing the Right Response
Error Handling, Exception Mappers
- Web Application Exception
- Response vs. Thrown Exception
- Error Responses
Sub Resource Locators, Motivation and Uses
- Locating the Locator
- Initializing the Sub Resource
Binary Content
- File, InputStream, StreamingOutput
- Using StreamingOutput
Module 07 : Java Client API
- Java Client – Options and Ingredients
- Building and Sending the Request
- Consuming the Response
- Options for the Response Data
- Asynchronous Requests
Module 08 : Integration 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
Module 09 : 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
- Security Context
- Client Security HTTPS