Home    |    Instructor-led Training    |    Online Training     
         
 
Courses
ADA
Adobe
Agile
AJAX
Android
Apache
AutoCAD
Big Data
BlockChain
Business Analysis
Business Intelligence
Business Objects
Business Skills
C/C++/Go programming
Cisco
Citrix
Cloud Computing
COBOL
Cognos
ColdFusion
COM/COM+
CompTIA
CORBA
CRM
Crystal Reports
Data Science
Datawarehousing
DB2
Desktop Application Software
DevOps
DNS
Embedded Systems
Google Web Toolkit (GWT)
IPhone
ITIL
Java
JBoss
LDAP
Leadership Development
Lotus
Machine learning/AI
Macintosh
Mainframe programming
Mobile
MultiMedia and design
.NET
NetApp
Networking
New Manager Development
Object oriented analysis and design
OpenVMS
Oracle
Oracle VM
Perl
PHP
PostgreSQL
PowerBuilder
Professional Soft Skills Workshops
Project Management
Rational
Ruby
Sales Performance
SAP
SAS
Security
SharePoint
SOA
Software quality and tools
SQL Server
Sybase
Symantec
Telecommunications
Teradata
Tivoli
Tomcat
Unix/Linux/Solaris/AIX/
HP-UX
Unisys Mainframe
Visual Basic
Visual Foxpro
VMware
Web Development
WebLogic
WebSphere
Websphere MQ (MQSeries)
Windows programming
XML
XML Web Services
Other
Developing RESTful Services with REST/JAX-RS
Web Services Training Overview

This course provides in-depth coverage of REST principles and building RESTful services using the JAX-RS 2.0 API. It includes a brief overview of SOAP-based services and WSDL, to provide a contrast to RESTful services.

To really understand REST, we need to remind (teach) students about the full capabilities of HTTP, since RESTful service design is centered on the innate principles and capabilities of the HTTP protocol. Stated differently, RESTful services should use HTTP the way it was originally intended, not just as GET/POST plumbing for request/response data. You will emerge from the course with a full understanding of the HTTP protocol and its vision of the "original web," and how these ideas are implemented in RESTful applications.

We'll show you how to handle the most common types of request input, culminating in the transmission of HTTP entities in both XML and JSON format, in line with the original intention of HTTP. You'll also learn how to create appropriate responses given a variety of inputs and conditions, according to the guidelines and principles in the HTTP standard.

On the client side, we look at Ajax-JavaScript clients, as well as standalone Java clients using the JAX-RS 2.0 Client API.

Your daily personal use of the web is increasingly RESTful, and this course will show you how to expose your backend business systems using REST and the innate API and capabilities of HTTP. We also take cues from the masters such as Google, examining some of their public services and using them as a backdrop in building our own.

The course is very hands-on with frequent labs, in which the student can see these ideas implemented in software.

Attendees must be experienced in Java and preferably familiar with XML, Java web applications, and other Java EE standards. Familiarity with Ajax, JavaScript, and JSON is also beneficial, but not required.

All labs are done with the Eclipse IDE Java EE version and the WildFly Application Server, and the lab instructions include detailed directions for using them. Other IDEs and servers available on request.

Web Services Training Skills Gained

  • 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
Supported Platforms

Eclipse IDE and WildFly Application Server, other IDEs and servers available on request.

Hands-on

Minimum 50% hands-on labs

Web Services Training Course duration

3 Days

Web Services Training Course outline

Session 1: 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
Session 2: 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
Session 3: 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
Session 4: 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
Session 5: 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
Session 6: 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
Session 7: Java Client API
  • Java Client - Options and Ingredients
  • Building and Sending the Request
  • Consuming the Response
  • Options for the Response Data
  • Asynchronous Requests
Session 8: 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
Session 9: 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

Please contact your training representative for more details on having this course delivered onsite or online

Training Outlines - the one stop shopping center for IT training.
© Training Outlines All rights reserved