Banner

RESTful Web Services

Duration: 16 Hours
Pattern figure

Overview

This REST Training program helps participants build an expertise in Representational State Transfer (REST); the course covers topics like Designing REST services, building JAX-RS services, understanding JAX-RS injection and other important aspects.

What You'll Learn

After completion of RESTful Web Services Training course, participants will be able to:
  • Design RESTful services
  • Build JAX-RS services
  • Understand JAX-RS injection
  • Configure HTTP content negotiation
  • Scale JAX-RS applications
  • Build RESTful clients
  • Compare & contrast JAX-RS implementations
Duration: 24 Hours

Curriculum

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

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

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 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

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

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

  • Java Client – Options and Ingredients
  • Building and Sending the Request
  • Consuming the Response
  • Options for the Response Data
  • Asynchronous Requests

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

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
waves
Ripple wave

Prerequisites

Participants must have knowledge of Java development. Experience in Java EE development is recommended however not mandatory.

Interested in this Course?

    Ready to recode your DNA for GenAI?
    Discover how Cognixia can help.

    Get in Touch
    Pattern figure
    Ripple wave