Implementing REST Services using Web API

REST has emerged in recent years as a tremendously important vehicle for creating flexible and standards-based Web services.

This course describes REST best practices and discusses important architectural and API modelling concepts, which you need to know in order to create scalable, secure, and performant REST APIs. The course is based on ASP.NET Web API 2, and discusses many of the rich framework APIs and advanced techniques available.

Duration

3 days

 

Prerequisites

  • 6 months experience of C# programming
  • Familiarity with ASP.NET MVC is beneficial

What you'll learn

  • Creating REST services using Web API
  • Advanced Web API 2 techniques
  • API architecture and modelling concepts
  • Working with OData
  • The importance of Hypermedia in REST
  • Building secure REST services
  • Implementing Quality of Service features
  • Deploying and hosting REST services

Course details

Essential Concepts

  • Overview of REST
  • HTTP methods, requests, responses, and headers
  • Creating a simple REST service using Web API

Web API 2 Techniques

  • Managing flexible HTTP requests and responses
  • Dependency injection
  • HTTP message handlers
  • Filters
  • File uploading

Model Binding

  • REST and MIME types
  • Content negotiation
  • Media formatters for XML, JSON, and BSON
  • Creating a custom model formatter
  • Configuration

REST Clients

  • Consuming REST services in .NET
  • Consuming REST services in web and mobile clients
  • Additional types of client

Managing Routes

  • Web API routing mechanisms
  • Route parameters
  • Best practices for designing APIs and routes
  • Architectural considerations and best practice

Working with OData

  • Overview of OData
  • Defining a data model
  • Configuring an OData endpoint
  • Implement CRUD operations
  • Advanced techniques

Building Hypermedia-Driven REST Services

  • Overview of Hypermedia
  • Understanding HATEOAS (Hypermedia as the Engine of Application State) constraints
  • Understanding HAL (Hypertext Application Language)
  • Implementing Hypermedia solutions using Web API

Security

  • Using SSL and HTTPs
  • Authentication and authorization options
  • ASP.NET identity
  • Using OAuth2
  • Using Windows Azure ACLs
  • Enabling Cross-Origin requests
  • Preventing Cross-Site Request Forgery (CSRF) attack

Practical Considerations

  • Documenting a REST API
  • Logging
  • Error handling
  • Testing
  • Performance
  • Scalability
  • Versioning

Deployment and Hosting

  • Deployment to IIS
  • Deployment to Windows Azure
  • Self-hosting using OWIN