Web API HTTP Pipeline
Learn More @ http://www.learnnowonline.com Copyright Š by Application Developers Training Company
Objectives • Understand the client-side and server-side pipelines • Send the best HTTP responses for Web API operations • Use the HTTP pipeline objects to handle exceptions • Write your own custom handlers for Web API requests Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
Agenda • • • • • •
Pipeline Elements Client-Side Pipeline Server-Side Pipeline Improving CRUD Responses Exception Handling Custom Handlers
Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
Pipeline Elements • • • • •
Request/Response models have pipelines Composed of sequential events that fire Uses specific objects Web API has client and server-side pipelines Both share some common objects
Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
HttpRequestMessage • Represents all the info about the HTTP request • URL • HTTP method • Headers
Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
HttpResponseMessage • Represents all the info about the HTTP response • Status code • Success flag • Original HTTP request
Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
HttpMessageHandler • Base class implemented by other objects • Most custom processing code goes here • Able to write custom handlers and put them in the pipeline
Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
Agenda • • • • • •
Pipeline Elements Client-Side Pipeline Server-Side Pipeline Improving CRUD Responses Exception Handling Custom Handlers
Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
Client-Side Pipeline • • • •
HttpClient sends requests Request is an HttpRequestMessage Request is sent to HttpMessageHandler HttpMessageHandler returns HttpResponseMessage • Default handler is HttpClientHandler
Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
Client-Side Pipeline
Learn More @ http://www.learnnowonline.com Copyright Š by Application Developers Training Company
Agenda • • • • • •
Pipeline Elements Client-Side Pipeline Server-Side Pipeline Improving CRUD Responses Exception Handling Custom Handlers
Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
Server-Side Pipeline • Web host gives the request to HttpServer • Request passed through series of HttpMessageHandlers • Ends with HttpControllerDispatcher • Dispatcher sends request to appropriate Controller which sends response
Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
Agenda • • • • • •
Pipeline Elements Client-Side Pipeline Server-Side Pipeline Improving CRUD Responses Exception Handling Custom Handlers
Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
Improving CRUD Responses • By default, Web API always sends same HTTP response code • Can alter the response to include more accurate info
Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
Improving CRUD Responses Let’s improve a Web API service’s HTTP responses!
Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
Agenda • • • • • •
Pipeline Elements Client-Side Pipeline Server-Side Pipeline Improving CRUD Responses Exception Handling Custom Handlers
Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
Exception Handling • Exceptions tend to be vague on client • HttpResponseException • Can use filters to assign HTTP responses
Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
Exception Handling Let’s set up an automated way to send better error messages to the client
Learn More @ http://www.learnnowonline.com Copyright Š by Application Developers Training Company
Agenda • • • • • •
Pipeline Elements Client-Side Pipeline Server-Side Pipeline Improving CRUD Responses Exception Handling Custom Handlers
Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
Custom Handlers • Inherit DelegatingHandler • Custom code to perform any kind of per request functionality • Logging • Security • Handling certain kinds of requests
Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company
Custom Handlers We’ll add some security to a Web API service
Learn More @ http://www.learnnowonline.com Copyright Š by Application Developers Training Company
Learn More! • This is an excerpt from a larger course. Visit www.learnnowonline.com for the full details! • Learn more about Web API on SlideShare: Web API Basics
Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company