[Marakana TV] - RESTful Java Training Course (Jersey) [ENG]
Videos and source codes:
https://github.com/marley-java/marakana.com-RESTful-Java
Release-date: January 2012
Run-time: 3 day course, every day has 4 videos that are about 1 hour long.
Video format: .mov (QuickTime Movie)
Resolution: 800x600 and 1024x768
The three day Java Web Services course provides a thorough guide to the design and implementation of RESTful web services using Java. We take students from the fundamental concepts of the REST architectural style and its embodiment in existing web standards, all the way through the creation and testing of a REST service. The course also illustrates how the decades-old HTTP protocol can in fact elegantly address a variety of "enterprise scale" issues, including high concurrency and atomic transactions.
Outline
1. Concepts: REST vs. the Rest
The Richardson Maturity Model
Resources: identification, representations and manipulation
Hypermedia as engine of application state
2. HTTP Basics
"CRUD" mapped to verbs / methods
Introduction to HTTP Headers
A glance at Webmachine's "Big HTTP Graph"
3. Intro to JAX-RS and Jersey
Creating resource classes
Jersey annotations: HTTP methods and headers
Constructing responses: headers and bodies
Standalone deployment with SimpleServerFactory
Testing fundamentals: JUnit and Jersey-Client
4. Resource Representations
Standard internet media types
JAXB: standard annotations and "content negotiation" for XML and JSON
Jackson: a non-standard, JSON-optimized alternative
More testing: Jackson object mapping and Hamcrest pattern matching
5. Representation Recipes
Building links to related resources, and URI templates for families of resources
Aggregate representations
Combating representation bloat: summaries, expansions and pagination
6. "Enterprise" HTTP
Authentication
Optimizations: conditional requests (using modification dates and entity tags) and
caching
Transactions: ephemeral resources
When does a GET have to be a POST?