Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
OWIN
Self-Hosting
IIS Hosting
HTTP Response
HTTP Request
HttpServer
Create Controller
Create an API controller based on the request.
1. Select controller type
HttpControllerDispatcher
SelectController
HttpControllerDescriptor
IHttpControllerSelector
GetControllerTypes
HttpRequestMessage
ICollection<Type>
IHttpControllerTypeResolver
HttpResponseMessage
GetAssemblies
ICollection<Assembly>
IAssembliesResolver
DelegatingHandler
2. Activate controller
Per-route
Message Handlers
HttpRoutingDispatcher
Yes
A message handler can create
the response directly, skipping
the rest of the pipeline.
Route.Handler
is null?
HttpControllerDispatcher
Create
Route.Handler
IHttpControllerActivator
No
DelegatingHandler
HttpControllerDispatcher
HttpMessageHandler
Create API
controller
IHttpController
SelectAction
Controller
Select controller
action
IHttpActionSelector
Authentication Filters
E
AuthenticateAsync
ChallengeAsync
Error response
Authorization
Filters
ApiController
Exception
Filters
Model Binding
Result Conversion
HttpActionDescriptor
InvokeActionAsync
Task<HttpResponseMessage>
IHttpActionInvoker
Action Filters
Key
Built-in Class
OnActionExecuting
OnActionExecuted
Exception!
Extensibility Point
Note
Invoke Action
Request
Response
Controller Action
HttpRequestMessage
Model Binding
Result Conversion
Request message
HttpResponseMessage
URI
Headers
Entity-body
FormatterParameterBinding
ModelBinderParameterBinding
HttpParameterBinding
IContentNegotiator
A media-type formatter
reads the message body
(if any).
Complex Type
IModelBinder
A custom parameter
binding can read any part
of the HTTP request.
Simple Type
Action parameters
If return type is
HttpResponseMessage,
pass through.
IValueProvider
Any Type
HttpResponseMessage
void
If return type is
IHttpActionResult,
call ExecuteAync
to create an
HttpResponseMessage
IHttpActionResult
Other types