RESTful Web Services Development with Java

Course:  RESTWSJ
Duration:  3 Days
Level:  I
Course Summary

This course teaches experienced Java programmers how to build RESTful web services using Java. The course starts with an overview of web services development on the Java EE platform, including SOAP, WSDL, REST, JAX-WS, JAXB, and JAX-RS. Students learn to work with JAXB to bind Java object models to XML Schema. The Jersey implementation is used to create RESTful services from simple single-value interactions to more sophisticated services that manage CRUD (create/retrieve/update/delete) operations on more complex data types, using JAXB to marshal and un-marshal data over the network.

« Hide The Details
Topics Covered In This Course

Chapter 1 The Programmable Web and Its Inhabitants

  • Kinds of Things on the Programmable Web
  • HTTP: Documents in Envelopes
  • Method Information
  • Scoping Information
  • The Competing Architectures
  • Technologies on the Programmable Web

Chapter 2 Writing Web Service Clients

  • Web Services Are Web Sites
  • Making the Request: HTTP Libraries
  • Processing the Response: XML Parsers
  • JSON Parsers: Handling Serialized Data

Chapter 3 What Makes RESTful Services Different

  • Introducing the Simple Storage Service
  • Object-Oriented Design of S3
  • Resources
  • HTTP Response Codes
  • An S3 Client
  • Request Signing and Access Control
  • Using the S3 Client Library

Chapter 4 The Resource-Oriented Architecture

  • Resource-Oriented What Now?
  • What?s a Resource?
  • URIs
  • Addressability
  • Statelessness
  • Representations
  • Links and Connectedness
  • The Uniform Interface

Chapter 5 Designing Read-Only Resource-Oriented Services

  • Resource Design
  • Turning Requirements Into Read-Only Resources
  • Figure Out the Data Set
  • Split the Data Set into Resources
  • Name the Resources
  • Design Your Representations
  • Link the Resources to Each Other
  • The HTTP Response

Chapter 6 Designing Read/Write Resource-Oriented Services

  • User Accounts as Resources
  • Custom Places
  • A Look Back at the Map Service

Chapter 7 Service Implementation

  • A Social Bookmarking Web Service
  • Figuring Out the Data Set
  • Resource Design
  • Design the Representation(s) Accepted from the Client
  • Design the Representation(s) Served to the Client
  • Connect Resources to Each Other
  • What?s Supposed to Happen?
  • What Might Go Wrong?
  • Controller Code
  • Model Code
  • What Does the Client Need to Know?

Chapter 8 REST and ROA Best Practices

  • Resource-Oriented Basics
  • The Generic ROA Procedure
  • Addressability
  • State and Statelessness
  • Connectedness
  • The Uniform Interface
  • Resource Design
  • URI Design
  • Outgoing Representations
  • Incoming Representations
  • Service Versioning
  • Permanent URIs Versus Readable URIs
  • Standard Features of HTTP

Chapter 9 The Building Blocks of Services

  • Representation Formats
  • Prepackaged Control Flows
  • Hypermedia Technologies

Chapter 10 The Resource-Oriented Architecture vs. Big Web Services

  • What Problems Are Big Web Services Trying to Solve?
  • SOAP
  • WSDL
  • UDDI
  • Security
  • Reliable Messaging
  • Transactions
  • BPEL, ESB, and SOA

Chapter 11 Ajax Applications as REST Clients

  • From AJAX to Ajax
  • The Ajax Architecture
  • The Advantages of Ajax
  • The Disadvantages of Ajax
  • REST Goes Better
  • Making the Request
  • Handling the Response
  • JSON
  • Cross-Browser Issues and Ajax Libraries

Chapter 12 Securing JAX-RS

  • Authentication
  • Authorization
  • Authentication and Authorization in JAX-RS


  • Best Practices
  • Design Considerations
What You Can Expect

At the end of the course, students will be able to:

  • Describe the benefits of using REST in application development.
  • Describe the technical architecture for RESTful applications.
  • Describe the technologies for implementing RESTful services in Java.
  • Understand the advantages of the REST architecture for web services.
  • Use Java to develop simple RESTful services.
  • Control dispatching to service methods based on URL patterns and HTTP methods.
  • Bind request values to method parameters when expressed as HTTP query parameters, form values, headers, and cookies.
  • Understand JAX-RX Security
  • Be aware of RESTful Best Practices
Who Should Take This Course

This course is designed for experienced Java programmers and architects who want to learn how to design and build RESTful web services using Java.

Recommended Prerequisites

Strong Java programming skills.

Training Style

Lecture (50%) / Workshop (50%)

« Hide The Details
Related Courses
Code Course Title Duration Level
Fundamentals of Java Development
5 Days
Developing Java Web Services
5 Days

Every student attending a Verhoef Training class will receive a certificate good for $100 toward their next public class taken within a year.

You can also buy "Verhoef Vouchers" to get a discounted rate for a single student in any of our public or web-based classes. Contact your account manager or our sales office for details.

Schedule For This Course
There are currently no public sessions scheduled for this course. We can schedule a private class for your organization just a couple of weeks from now. Or we can let you know the next time we do schedule a public session.
Notify me the next time this course is confirmed!
Can't find the course you want?
Call us at 800.533.3893, or
email us at [email protected]