8280  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
Duration 3 days
Course Code WA2785
Available Formats Classroom

Overview

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)

Schedule

FAQ

Does the course schedule include a Lunchbreak?

Classes typically include a 1-hour lunch break around midday. However, the exact break times and duration can vary depending on the specific class. Your instructor will provide detailed information at the start of the course.

What languages are used to deliver training?

Most courses are conducted in English, unless otherwise specified. Some courses will have the word "FRENCH" marked in red beside the scheduled date(s) indicating the language of instruction.

What does GTR stand for?

GTR stands for Guaranteed to Run; if you see a course with this status, it means this event is confirmed to run. View our GTR page to see our full list of Guaranteed to Run courses.

Does Ascendient Learning deliver group training?

Yes, we provide training for groups, individuals and private on sites. View our group training page for more information.

What does vendor-authorized training mean?

As a vendor-authorized training partner, we offer a curriculum that our partners have vetted. We use the same course materials and facilitate the same labs as our vendor-delivered training. These courses are considered the gold standard and, as such, are priced accordingly.

Is the training too basic, or will you go deep into technology?

It depends on your requirements, your role in your company, and your depth of knowledge. The good news about many of our learning paths, you can start from the fundamentals to highly specialized training.

How up-to-date are your courses and support materials?

We continuously work with our vendors to evaluate and refresh course material to reflect the latest training courses and best practices.

Are your instructors seasoned trainers who have deep knowledge of the training topic?

Ascendient Learning instructors have an average of 27 years of practical IT experience and have also served as consultants for an average of 15 years. To stay current, instructors spend at least 25 percent of their time learning new, emerging technologies and courses.

Do you provide hands-on training and exercises in an actual lab environment?

Lab access is dependent on the vendor and the type of training you sign up for. However, many of our top vendors will provide lab access to students to test and practice. The course description will specify lab access.

Will you customize the training for our company’s specific needs and goals?

We will work with you to identify training needs and areas of growth.  We offer a variety of training methods, such as private group training, on-site of your choice, and virtually. We provide courses and certifications that are aligned with your business goals.

How do I get started with certification?

Getting started on a certification pathway depends on your goals and the vendor you choose to get certified in. Many vendors offer entry-level IT certification to advanced IT certification that can boost your career. To get access to certification vouchers and discounts, please contact info@ascendientlearning.com.

Will I get access to content after I complete a course?

You will get access to the PDF of course books and guides, but access to the recording and slides will depend on the vendor and type of training you receive.

How do I request a W9 for Ascendient Learning?

View our filing status and how to request a W9.

Reviews

vary good online learning. instructor is vary good the way he explained every thing.

it was good and very informative. Instructure covered everything in detail.

ExitCertified was a great. They gave me all the materials and information I needed ahead of time to prepare for the course.

Good training. A lot to take in for the short amount of time we have though

The class was very vast paced however the teacher was very good at checking in on us while giving us time to complete the labs.