Implementación de la negociación de contenido en base a cabeceras HTTP
Las aplicaciones REST (Representational State Transfer) pueden devolver diferentes representaciones de recursos. Puede utilizar el contenido de la negociación basado en cabeceras de aceptación HTTP para determinar el contenido formato que se utiliza para intercambiar datos entre servidores y clientes.
Acerca de esta tarea
Los recursos pueden representar datos en formatos distintos. Puede implementar la negociación de contenido basada en URL, parámetros de solicitudes o cabeceras HTTP. En esta tarea se describe la negociación de contenido en base a las cabeceras de aceptación HTTP para enviar y recibir diferentes formatos de datos.
Cuando un navegador web realiza una solicitud, envía información sobre lo que está buscando al servidor en cabeceras. Una de estas cabeceras es la cabecera Accept (aceptación). La cabecera Accept indica al servidor qué formatos o tipos MIME está buscando el cliente. Puede utilizar las cabeceras Accept HTTP para determinar el formato de contenido que se utiliza para intercambiar datos.
Mientras la cabecera Accept no está visible como URL o parámetros, esta cabecera será el método más flexible de gestionar la negociación de contenido. También puede utilizar las cabeceras HTTP Accept, Accept-Charset, Accept-Language y Accept-Encoding para determinar el tipo de contenido que se devuelve del servidor.
Mediante la utilización de las cabeceras Accept HTTP puede asignar grados de calidad a respuestas aceptables. Por ejemplo, un cliente puede indicar que XML es el tipo de contenido de respuesta preferido. Sin embargo, si XML no está disponible, el cliente puede aceptar JSON o el texto plano para el formato.
Por ejemplo, si la cabecera Accept contiene un valor como, por ejemplo, application/json; q=1.0, text/xml;q=0.5, application/xml;q=0.5, este valor indica que JSON es el formato preferido pero que XML también se acepta.
En otros métodos de la negociación de contenido, normalmente hay un tipo de respuesta preferida. Sin embargo, puede utilizar las cabeceras Accept HTTP para informar al servicio de todos los tipos posibles que el cliente acepta en una solicitud. Además, la cabecera Accept HTTP y sus cabeceras relacionadas forman parte de la normativa HTTP.
Es importante tener en cuenta los aspectos siguientes cuando se implementa la negociación de contenido utilizando cabeceras HTTP. Es posible que algunos clientes envíen valores incorrectos y puede que algunos servicios no respeten las cabeceras Accept HTTP. Además, el proceso de todas las cabeceras HTTP y el cálculo de la respuesta óptima no es tan sencillo como solicitar contenido basándose en un URL o un parámetro de solicitud.
Procedimiento
Resultados
Ha implementado la negociación de contenido utilizando cabeceras Accept para determinar los formatos para recursos que representan los datos.