ASP.NET Web API is a framework for building HTTP services. It allows HTTP requests to flow through a pipeline of message handlers and filters before invoking a controller action. The response then flows back through formatters, handlers, and filters. Extensibility points allow customizing the pipeline.
ASP.NET Web API is a framework for building HTTP services. It allows HTTP requests to flow through a pipeline of message handlers and filters before invoking a controller action. The response then flows back through formatters, handlers, and filters. Extensibility points allow customizing the pipeline.
ASP.NET Hosting HTTP Message Handlers Controller Model Binding Controller Action Per-route Message Handlers HttpControllerHandler Self-Hosting HttpSelfHostServer HTTP message handlers are the first stage in the processing pipeline. They process HTTP request messages on the way in, and HTTP response messages on the way out. To create a custom message handler, derive from the DelegatingHandler class. You can add multiple message handlers. Message handlers can be global or assigned to a specific route. A per-route message handler is invoked only when the request matches that route. Per-route message handlers are configured in the routing table. You can host Web API within an ASP.NET application, or inside your own process (self-hosting). After the initial entry point, the HTTP messages go through the same pipeline. The HTTP request message is first converted to an HttpRequestMessage object, which provides strongly typed access to the HTTP message. The controller is where you define the main logic for handling an HTTP request. Your controller derives from the ApiController class or implements the IHttpController interface. Model binding uses the request to create values for the parameters of the action. These values are passed to the action when the action is invoked. Result Conversion HttpServer HttpRequestMessage HttpRequestMessage HttpResponseMessage DelegatingHandler Authorization Filters Exception Filters Action Filters URI Headers Entity-body Request message HttpRoutingDispatcher HttpControllerDispatcher Model Binding Result Conversion HttpResponseMessage Route.Handler DelegatingHandler HttpMessageHandler Route.Handler is null? Create API controller Invoke Action Select controller action Action parameters Action return value This message handler can invoke HttpControllerDispatcher and return to the main path, or provide a custom end point. A message handler can create the response directly, skipping the rest of the pipeline. A message handler can create the response directly, skipping the rest of the pipeline. Error response Unhandled exceptions are routed to exception filters. If the request is not authorized, an authorization filter can create an error response and skip the rest of the pipeline. Action filters are invoked twice, before and after the controller action. A media-type formatter reads the message body (if any). The default model binders read from the URI path and query string. A custom parameter binding can read any part of the HTTP request. Exception! FormatterParameterBinding ModelBinderParameterBinding HttpParameterBinding Media Type Formatter Complex Type IModelBinder Simple Type Any Type IValueProvider HttpResponseMessage void Other types The return value from the action is converted to an HttpResponseMessage. If return type is HttpResponseMessage, pass through. If return type is void, create response with status 204 (No Content). For all other return types, a media-type formatter serializes the value and writes it to the message body. Media Type Formatter IContentNegotiator A B E C D C D ASP.NET Web API is a framework that makes it easy to build HTTP services that reach a broad range of clients, including browsers and mobile devices. It is an ideal platform for building RESTful applications on the .NET Framework. This poster shows how an HTTP request flows through the Web API pipeline, and how the HTTP response flows back. The diagram also shows extensibility points, where you can add custom code or even replace the default behavior entirely. You can find documentation and tutorials for ASP.NET Web API at http://www.asp.net/web-api. Key Built-in Class Extensibility Point Note Request Response ApiController InvokeActionAsync Task<HttpResponseMessage> IHttpActionInvoker Invoke Controller Action Invoke controller action, using HttpActionContext for bindings and model state. E HttpControllerDispatcher SelectController HttpControllerDescriptor IHttpControllerSelector HttpControllerDispatcher Create IHttpController IHttpControllerActivator IAssembliesResolver GetControllerTypes ICollection<Type> IHttpControllerTypeResolver GetAssemblies ICollection<Assembly> Create Controller Create an API controller based on the request. 1. Select controller type 2. Activate controller A ApiController SelectAction HttpActionDescriptor IHttpActionSelector Select Controller Action Select an action based on the request. B OnActionExecuting OnActionExecuted No Yes Email: [email protected]
Python Advanced Programming: The Guide to Learn Python Programming. Reference with Exercises and Samples About Dynamical Programming, Multithreading, Multiprocessing, Debugging, Testing and More