8117  Reviews star_rate star_rate star_rate star_rate star_half

RESTful Service Architecture

REST is an architectural pattern but when applied in the real world it is almost always implemented as Web services over HTTP. Moving from the theoretical to the practical the focus shifts to mapping...

Read More
$2,090 USD
Course Code WA2785
Duration 3 days
Available Formats Classroom

REST is an architectural pattern but when applied in the real world it is almost always implemented as Web services over HTTP. Moving from the theoretical to the practical the focus shifts to mapping RESTful Architecture to HTTP Web services. After exploring the basic mapping of operations to HTTP Methods students take a deeper dive into the special uses of the GET, PUT, POST, and PATCH methods. The class will also cover challenges in mapping RESTful services to HTTP.

  • Other topics include security, RESTful API lifecycle, describing RESTful service, anti-patterns and best practices.
  • This course is not primarily a development class. Labs include team oriented pen and paper exercises as well as some programming exercises, with detailed instructions, to illustrate key features of a RESTful API.

Who Can Benefit

Solutions Architects, Enterprise Architects, Developers

Prerequisites

Some experience with software architecture.

Course Details

Outline

Chapter 1. Introduction to RESTful Services

  • The History of Web Services
  • Roy Fielding
  • REST is not a Standard – it's a Way of Life
  • So What is REST?
  • What is REST
  • Constraints
  • Representations
  • Resources
  • Uniform Interface
  • Stateless Operations
  • Related Standards: URL
  • Related Standards: HTTP
  • HTTP Methods
  • HTTP Status Codes
  • Related Standards: MIME
  • REST Resource Examples
  • Summary

Chapter 2. REST Architecture Constraints

  • REST Architectural Constraints
  • Client/Server
  • Stateless
  • Cacheable
  • Uniform Interface
  • Layered System
  • Code on Demand
  • REST Interface Constraints
  • Identification of resources
  • Manipulation of Resources through Representations
  • Self-descriptive messages
  • Hypermedia as the Engine of Application State (HATEOAS)
  • Summary

Chapter 3. Refining the GET Method

  • The GET Method
  • Passing Parameters
  • Anatomy of a URL
  • Path Parameters
  • Path Parameter Examples
  • Query Parameters
  • Query Parameters as Filters
  • Query Parameters for Pagination and Sorting
  • HTTP Status Codes
  • Responses
  • Best Practices HTTP GET
  • Summary

Chapter 4. REST vs. SOAP

  • Defining REST
  • The Six REST Architectural Style Constraints
  • The Four REST Interface Constraints
  • Hypermedia Examples
  • Defining SOAP
  • RPC SOAP vs. REST
  • Document SOAP vs. REST
  • Where SOAP Shines
  • Where REST Shines
  • Selecting an Appropriate Solution
  • Summary

Chapter 5. POST PUT PATCH

  • HTTP Methods That Modify/Create Resources
  • POST
  • POST Request Example
  • POST Response Example
  • PUT
  • PUT Example - Update
  • PUT Example - Create
  • PATCH
  • Patch Example - Update
  • Summary

Chapter 6. Other RESTful Considerations

  • MIME Types
  • Some Common MIME Types
  • Content Headers
  • Content Headers Example
  • Content Issues
  • Content Negotiation
  • API Versioning
  • Versioning Schemes
  • Versioning – URI
  • Issues with URI Versioning
  • Versioning – Accept Header
  • Summary

Chapter 7. Describing RESTful APIs

  • Describing RESTful APIs
  • History
  • Ad-hoc Interface definitions
  • Modern Choices
  • RAML
  • Build A RAML API Description
  • ROOT
  • List Resources
  • Define Methods
  • Define Query Parameters
  • Enter Responses
  • Open API (Swagger)
  • Swagger Editor
  • Swagger Codegen
  • Swagger UI
  • OpenAPI Service Description
  • Pretty Printed OpenAPI Service Definition
  • Summary

Chapter 8. Securing REST Services

  • RESTful Security - Ideal Approach
  • RESTful Security - Practical Approach
  • Protecting the QueryString
  • REST and Access IDs
  • AWS and HMAC
  • Securing Resources
  • REST Security Concerns
  • Comprehensive REST Security
  • Summary

Chapter 9. RESTful Service Lifecycle

  • RESTful API Service Lifecycle
  • Design
  • Conceptualize
  • Feedback
  • Validate
  • Implement
  • Implement
  • Define REST Resources
  • Define REST Data Models
  • Create API Definitions
  • Create Implementation
  • Manage
  • Secure
  • Deploy
  • Monitor
  • Maintain
  • Retire
  • Summary

Chapter 10. RESTful Service Challenges

  • URLs for GET Requests
  • RFC7230 (HTTP)
  • URLs the Real Story
  • The URL Dilemma
  • Mapping
  • Other
  • Operations
  • A System to Manage Video Games
  • Operations that do map to HTTP Methods
  • Another
  • non-RESTful
  • Operation
  • GET, GET, GET
  • More GET issues
  • The Problem with Embedded Parameters and GET
  • HTTP
  • Summary

Chapter 11. 10 REST Anti-patterns

  • RESTafarians
  • HATEOS == REST
  • POST and GET
  • Forcing POSTs to be Idempotent
  • Misuse of URI path
  • Not using descriptive HTTP Status Codes
  • Ignoring Caching
  • Cookies
  • Summary

Chapter 12. REST Best Practices

  • Only use Nouns in URIs
  • Use Sub-Resources
  • Provide Query Parameters for Large Query Results
  • Use MIME-Types in Headers
  • HATEOAS
  • Use HTTP Status Codes
  • Use Error Payloads
  • Summary

Lab Exercises

  • Lab 1. Hello REST Service
  • Lab 2. Build a CRUD Service
  • Lab 3. Choose REST or SOAP
  • Lab 4. Queries
  • Lab 5. Using PUT and PATCH
  • Lab 6. Content Negotiation
  • Lab 7. RESTful Services in the Wild
  • Lab 8. Design a Simple API
  • Lab 9. Mapping Other Operations
  • Lab 10. OpenAPI (Swagger)