ASP.net Web API Poster

ASP.NET WEB API: CICLO DE VIDA DE LOS MENSAJES HTTP Puede hospedar Web API dentro de una aplicación ASP.NET o dentro de

Views 116 Downloads 2 File size 1MB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

ASP.NET WEB API: CICLO DE VIDA DE LOS MENSAJES HTTP Puede hospedar Web API dentro de una aplicación ASP.NET o dentro de su propio proceso (autohospedaje). Después del punto de entrada inicial, los mensajes HTTP pasan por la misma canalización. Primero, el mensaje de solicitud HTTP se convierte en un objeto HttpRequestMessage, que proporciona acceso fuertemente tipado al mensaje HTTP.

Hospedaje de ASP.NET

ASP.NET Web API es un marco de trabajo que facilita la creación de servicios HTTP para que la gama más amplia de clientes posible tenga acceso a ellos, incluidos los exploradores y los dispositivos móviles. Es una excelente plataforma para la creación de aplicaciones RESTful en .NET Framework. En este poster se muestra el flujo de una solicitud HTTP a través de la canalización Web API y el flujo de retorno de la respuesta HTTP. El diagrama también muestra los puntos de extensibilidad donde puede agregar código personalizado e incluso reemplazar completamente el comportamiento predeterminado. Encontrará documentación y tutoriales acerca de ASP.NET Web API en http://www.asp.net/web-api.

Autohospedaje

HttpControllerHandler

HttpSelfHostServer

HttpServer

HttpResponseMessage

HttpRequestMessage

A

Creación del controlador Cree un controlador API basado en la solicitud. 1. Seleccione el tipo de controlador HttpControllerDispatcher SelectController

HttpControllerDescriptor

IHttpControllerSelector GetControllerTypes

ICollection

IHttpControllerTypeResolver GetAssemblies

ICollection

IAssembliesResolver

Controladores de mensajes HTTP Los controladores de mensajes HTTP son la primera fase de la canalización del proceso. Procesan mensajes de solicitud HTTP al entrar y mensajes de respuesta HTTP al salir. Para crear un controlador de mensajes personalizado, debe derivarse desde la clase DelegatingHandler. Puede agregar varios controladores de mensajes.

Un controlador de mensajes puede crear la respuesta directamente y omitir el resto de la canalización.

DelegatingHandler

Los controladores de mensajes pueden ser globales o asignarse a una ruta específica. Un controlador de mensajes por ruta se invoca únicamente cuando la solicitud coincide con esa ruta. Los controladores de mensajes por ruta se configuran en la tabla de enrutamiento.



HttpControllerDispatcher Crear

Controladores de mensajes por ruta

HttpRoutingDispatcher

¿Route.Handler es NULL?

2. Active el controlador

IHttpControllerActivator

Route.Handler

No

IHttpController

DelegatingHandler

B

Selección de la acción del controlador Seleccione una acción basada en la solicitud.

Un controlador de mensajes puede crear la respuesta directamente y omitir el resto de la canalización.

HttpControllerDispatcher HttpMessageHandler

Crear controlador API

A

ApiController

Este controlador de mensajes puede invocar a HttpControllerDispatcher y volver a la ruta de acceso "principal" o proporcionar un extremo personalizado.

SelectAction

HttpActionDescriptor

IHttpActionSelector

Controlador

B

El controlador es donde se define la lógica principal para controlar una solicitud HTTP. El controlador deriva de la clase ApiController o implementa la interfaz IHttpController.

Seleccionar la acción del controlador E

Respuesta de error

Si la solicitud no está autorizada, un filtro de autorización puede crear una respuesta de error y omitir el resto de la canalización.

Filtros de autorización C

Invoque la acción del controlador con HttpActionContext para los enlaces y el estado del modelo.

Filtros de excepciones

ApiController

D

InvokeActionAsync

Resultado de la conversión

Enlace de modelos Los filtros de acción se invocan dos veces, antes y después de la acción del controlador.

Invocación de la acción del controlador

Task

IHttpActionInvoker

Filtros de acción

OnActionExecuting

Clave

OnActionExecuted Excepción

E

Las excepciones no controladas se enrutan hacia filtros de excepción.

Clase integrada Punto de extensibilidad

Invocar la acción

Nota Solicitud

Acción del controlador

Respuesta

C

D

HttpRequestMessage

Enlace de modelos

Resultado de la conversión

Mensaje de solicitud

El enlace de modelos utiliza la solicitud para crear valores para los parámetros de la acción. Estos valores pasan a la acción cuando se invoca.

HttpResponseMessage

El valor devuelto de la acción se convierte en un HttpResponseMessage.

Identificador URI Encabezados Cuerpo de la entidad

FormatterParameterBinding

ModelBinderParameterBinding

Formateador de tipo de medio

HttpParameterBinding

IContentNegotiator Un formateador de tipo de medio lee el cuerpo del mensaje (si hubiese).

Formateador de tipo de medio

Tipo complejo

Un enlace de parámetros personalizados puede leer cualquier parte de la solicitud HTTP.

Los enlazadores de modelos predeterminados leen la ruta de acceso y la cadena de consultas del URI.

IModelBinder

Si el tipo de valor devuelto es HttpResponseMessage, déjelo pasar.

Si el tipo de valor devuelto es void, cree una respuesta con el código de estado 204 (Sin contenido).

Para el resto de tipos de valores devueltos, el formateador de tipo de medio serializa el valor y lo escribe en el cuerpo del mensaje.

HttpResponseMessage

void

Otros tipos

IValueProvider

Tipo simple

Parámetros de acción

Cualquier tipo

Valor devuelto de la acción

Correo electrónico: [email protected] © 2012 Microsoft Corporation. Todos los derechos reservados.