What you will learn in this course

The world of software development has been changing over the years. Less and less software is built as monolithic applications. With the rise of both the cloud and smart devices software applications are becoming more and more distributed. Distributed environments need to be built using standards and there is no standard more common than the HTTP protocol which is the foundation of the World Wide Web. REST services are built on top of the HTTP standard making it a first class choice for interoperable services.

The Essential REST course teaches how to develop and consume RESTful services. During this course you will learn the principals and best practices for developing REST services and why you might want to use RESTful services instead of SOAP services. The course teaches building REST services using the Microsoft ASP.NET Web API framework.

Some of the reasons REST services are becoming more popular:

  • Build on top of the standard and proven HTTP protocol.
  • Broad reach as every programming stack, from smart phone to mainframe, has support for HTTP.
  • Clients can request XML, JSON, or a different format depending on their capabilities and preferences.
  • HTTP caching as well as stateless services result in a very scalable architecture.
  • Uses proven for HTTP security confidentiality and authentication.

Course highlights

  • Gain understanding of the strengths and weaknesses of REST services and architecture.
  • Understand how the HTTP standard is used in REST services.
  • Discover which services are best suited as RESTful services and which are better implemented as SOAP services.
  • Learn how to implement REST services using the Microsoft ASP.NET Web API framework.
  • Learn how to consume REST services, both in smart clients as well as browser based clients.

Course outline and topics

Day 1

REST Architecture

  • What are REST Services
  • Hypertext Transfer Protocol
  • Why and When to use REST Service
  • REST versus SOAP Services
  • The ASP.NET Web API Framework

REST Basics

  • Resources
  • Uniform Resource Locators
  • HTTP Methods
  • HTTP Status Codes

Resource Formats

  • MIME Types
  • Accept Header & Content Negotiation
  • Building and Using MediaTypeFormatters

Browser-based Clients

  • Browsers aren't always as smart as they should be
  • They claim they can accept any resource
  • Use templates or data binding to display data
  • Browsers can be over aggressive with caching
  • Browsers are build around the HTML spec and don't support all HTTP features

Day 2

Hypermedia

  • The Problem with Simple REST Services
  • Hypermedia Contracts
  • OData & AtomPub

Securing REST Services

  • HTTP Security
  • SSL/TLS
  • Basic Authentication
  • Forms Authentication
  • Integrated Authentication
  • Token-based Security
  • OAuth & OAuth2
  • Amazon's S3 Authentication
  • Federated Security

Scalability

  • Filtering Data
  • HTTP Caching