Overview
This course is intended for experienced java developers who wish to explore the core concepts, principles, and Java implementations for RESTful services. In this course, participants will learn how to design, develop and deploy the web services whilst applying the basic concepts of REST.
What You'll Learn
- Understand and apply the basic concepts of REST
- Understand and intelligently discuss the similarities and differences between RESTful services and SOAP-based services
- Appreciate the security concerns associated with RESTful services
- Design, develop, and deploy real-world RESTful Services
- Implement RESTful services using JAX-RS to
- Implement RESTful java clients
- Implement JAX-RS filters and interceptors
- Discover asynchronous JAX-RS processing
Curriculum
- Representational state transfer
- REST characteristics
- REST elements
- REST architectural principles
- REST and HTTP
- REST/HTTP: Representation-oriented
- REST design principles
- Tutorial: Working with eclipse neon (JEE Version) and tomcat 8.5
- Effectively designing RESTful services
- Best practices for endpoint definition
- Using query parameters
- Working with HTTP GET and DELETE
- Working with HTTP PUT
- Working with HTTP POST
- Best practices for HTTP methods
- Handling additional operations
- Understand some of the features of the JAX-RS framework
- Be familiar with process for implementing RESTful services
- Be able to develop and deploy a simple REST service
- How JAXB supports XML interoperability
- How to use JAXB with JAX-RS
- Exercise: Introduction to JAX-RS
- JAX-RS mechanisms for mapping URIs to resource
- How to use @Path expressions to map URIs
- How to use @Path expressions to extract values from URIs
- Exercise: URI Matching JAX-RS
- JAX-RS built-in content handler
- How to inject content handlers into service
- Basics of working with JSO
- Capabilities for HTTP content negotiation
- JAX-RS mechanisms for supporting content negotiation
- Exercise: Content negotiation
- How information about the request can be injected into the resource
- The different injection targets of the resource
- How to build a ‘complex’ response
- How to respond to a HTTP POST
- The JAX-RS exception hierarchy
- How exceptions can be mapped to response codes
- Exercise: The reservation service
- Be able to invoke a JAX-RS service using the client API
- Understand the purpose of the webtarget object
- Be able to dynamically resolve path template values
- Understand some of the return codes
- Be able to filter client request and server responses
- Exercise: JAX-RS clients
- Understand the purpose of JAX-RS filters
- Be able to develop interceptors
- Be able to define global filters and interceptors
- Dynamically add interceptors and filters
- Understand namebinding
- Exercise: JAX-RS filters and interceptors
- Be able to make asynchronous requests
- Develop resources to process request asynchronously
- Exercise: Asynchronous JAX-RS
- Input data attacks
- Protecting a web service
- Tenacious D
- Responding to error state
- How attackers see REST
- Factors that increase attack surface
- Bridging and its potential problems
- Dangerous developer assumptions
- Three basic tenets for safe REST
Who should attend
This is an intermediate level training course, designed for experienced java developers and architects who need to identify, design, and implement web services.
This course is highly recommended for:
- Senior java developers
- Senior software engineers
- Web service developers
- Senior IT leaders
- Senior Java programmers
Prerequisites
Participants must have at least a year of practical development experience with java and servlets, and should be familiar with XML and JSON.