Utilización de la negociación de contenido para diversos tipos de contenido en las aplicaciones de JAX-RS

Una de las ventajas de las aplicaciones RESTful es la capacidad de devolver diferentes representaciones de recursos. Con REST (Representational State Transfer), los clientes y servidores pueden intercambiar recursos del mismo tipo o utilizar diferentes tipos de medios. La negociación de contenido permite a los clientes y servidores establecer un acuerdo sobre el formato del contenido que se utiliza para intercambiar datos.

Acerca de esta tarea

Los recursos se representan mediante diversos formatos diferentes. Se utiliza XML, JavaScript Object Notation (JSON), Atom, texto sin formato, PNG, JPEG, GIF y también formatos personalizados y de propiedad para representar recursos. REST (Representational State Transfer) proporciona la flexibilidad para representar un solo recurso en varios formatos.

En función de los requisitos de la aplicación, los recursos puede devolver representaciones en un formato único o en distintos formatos, dependiendo de la solicitud. Por ejemplo, los recursos a los que se accede utilizando clientes de JavaScript podrían preferir representaciones JSON porque JSON es fácil de consumir. Sin embargo, otros clientes prefieren XML.

Utilice la negociación de contenido si desea ofrecer varios formatos a los clientes. La negociación de contenido es el método en el que el cliente y el servidor establecen un acuerdo respecto al tipo de contenido de respuesta que se va a utilizar. Existen tres tipos de contenido la negociación de contenido que afectan a la respuesta. Puede utilizar la negociación de contenido que se basa en el URL, basándose en un parámetro de solicitud, o en cabeceras HTTP.

Procedimiento

  1. Configure el entorno de desarrollo.
    1. Antes de comenzar a desarrollar aplicaciones de JAX-RS, debe configurar su entorno de desarrollo añadiendo las bibliotecas JAX-RS en la vía de acceso de clases.
  2. Defina los recursos en aplicaciones web JAX-RS.
    1. Los recursos son el bloque de compilación básico de creación de un servicio RESTful. Los recursos pueden contener datos actualizados de forma estática o dinámica. Ejemplos de recursos de una aplicación de almacén de libros en línea incluyen un libro, un pedido en una tienda y una colección de usuarios. Identificando los recursos en la aplicación, puede hacer que el servicio resulte más útil y más fácil de desarrollar.
  3. Configure la aplicación JAX-RS.

    Puede configurar las aplicaciones JAX-RS de varias maneras en función de sus necesidades. Para sacar partido de las funciones de Java™ Platform, Enterprise Edition (Java EE) 6, puede utilizar las prestaciones de exploración de anotaciones. Mediante la utilización de la exploración de anotación, puede omitir una subclase javax.ws.rs.core.Application de JAX-RS o tener una subclase javax.ws.rs.core.Application mínimamente definida. Como alternativa, puede especificar el servlet o el filtro IBM® JAX-RS si desea utilizar las funciones disponibles en el servlet y el filtro IBM JAX-RS.

    Si utiliza uno de los métodos de configuración de JAX-RS Versión 1.1, puede omitir una subclase javax.ws.rs.core.Application en la aplicación o disponer de una subclase javax.ws.rs.core.Application que devuelva un conjunto vacío de clases para informar al entorno de ejecución JAX-RS para que busque y utilice todas las clases JAX-RS de la aplicación. Es recomendable utilizar este método si no desea tener que añadir manualmente cada clase JAX-RS relevante a una subclase javax.ws.rs.core.Application mientras desarrolla la aplicación.

    Especificando el servlet y el filtro IBM específicos puede sacar partido y garantizar un comportamiento de IBM específico. Por ejemplo, el uso del filtro IBM JAX-RS puede ser útil en el desarrollo de una aplicación web con una combinación de recursos JAX-RS y archivos JavaServer Pages (JSP) con los mismos patrones de URL.

    Aunque existe un método de configuración de JAX-RS V1.1 que soporta el uso de un archivo web.xml opcional, si desea especificar roles o restricciones de seguridad o desea aprovechar otras características habilitadas utilizando un archivo web.xml, debe especificar la información en un archivo web.xml.

    Elija uno de los tres métodos siguientes para configurar la aplicación JAX-RS:

    • Configurar las aplicaciones JAX-RS con métodos de JAX-RS 1.1

      Utilice este método si desea utilizar las prestaciones de exploración de anotaciones o utilizar los métodos de configuración de JAX-RS 1.1. Puede utilizar las prestaciones de exploración de anotaciones para promover la portabilidad de las aplicaciones, minimizar la cantidad de código de configuración o modificar dinámicamente la aplicación sin cambios en el código de aplicación.

    • Configure el archivo web.xml para los servlets de JAX-RS

      Utilice este método si desea especificar características que se habilitan mediante parámetros de inicialización de servlet para cambiar el comportamiento y para asegurarse de obtener el servlet IBM JAX-RS. Cuando se utilizan servlets, puede definir una vía de acceso del servlet en el archivo web.xml que se añadirá al URL base.

    • Configure el archivo web.xml para los filtros de JAX-RS

      Utilice este método si desea utilizar el filtro cuando tiene los JSP, otros servlets y filtros y recursos JAX-RS con una combinación de patrones de URL. Puede configurar el archivo web.xml para definir filtros que indiquen los URL posibles en los que se puede invocar el filtro.

  4. Implemente la negociación de contenido para prestar servicio a diversos tipos de contenido. Utilice la negociación de contenido para determinar la mejor representación de recursos que tiene el servidor para devolverlos al cliente. Puede implementar la negociación de contenido en función de los patrones de URL, parámetros de solicitud o cabeceras HTTP.
  5. Ensamble las aplicaciones web JAX-RS.
    1. Después de desarrollar los archivos de clase Java para la aplicación web de JAX-RS y tras editar el archivo web.xml para habilitar el servlet de JAX-RS, ya estará listo para ensamblar la aplicación. Ensamble la aplicación web en un paquete WAR (archivador web). Puede ensamblar el paquete WAR en un paquete archivador empresarial (EAR), si fuera preciso.
  6. Despliegue las aplicaciones web JAX-RS.
    1. Tras ensamblar la aplicación web de JAX-RS, tendrá que desplegar el paquete archivador web (WAR) o el paquete archivador empresarial (EAR) en el servidor de aplicaciones.

Resultados

Ha implementado la negociación de contenido para determinar los formatos de recursos para representar datos.


Icon that indicates the type of topic Task topic



Timestamp icon Last updated: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twbs_jaxrs_contentnegotiation
File name: twbs_jaxrs_contentnegotiation.html