Utilización de objetos de contenido JAX-RS para obtener más información acerca de solicitudes

Java API for RESTful Web Services (JAX-RS) proporciona distintos tipos de contexto para las clases y los proveedores de recursos. Puede utilizar objetos de contexto para acceder a información de solicitud como, por ejemplo, el descubrimiento de cabeceras HTTP que se envían como parte de la solicitud. Los objetos de contexto también proporcionan métodos adecuados para evaluar una solicitud y crear una respuesta adecuada.

Acerca de esta tarea

Es posible que los recursos de aplicaciones REST (Representational State Transfer) necesiten inspeccionar algunos datos de contexto de aplicaciones tras su invocación. Por ejemplo, un método de recursos que procesa una consulta GET de HTTP es posible que desee inspeccionar las cabeceras HTTP de la solicitud de la cabecera HTTP Accept-Language de modo que el método pueda dar salida a una respuesta en el idioma especificado por la solicitud.

JAX-RS define una manera sencilla de recuperar estos datos dentro del ámbito del recurso de la aplicación. Mediante la declaración de la anotación @Context con el objeto adecuado como parámetro para un método de recurso o como campo dentro de la clase de recursos, los datos que desee se colocarán en el recurso. La implementación de JAX-RS llena el parámetro o el campo con datos contextuales y el método de recurso tiene acceso a todos los datos contextuales que necesita.

Puede utilizar los siguientes tipos de interfaz permitidos por el entorno de ejecución de JAX-RS:
Tipos de interfaz Descripción
javax.ws.rs.core.UriInfo La interfaz UriInfo proporciona el URI completo especificado por la solicitud. Esta interfaz también puede inspeccionar qué recurso(s) coincide(n) con la solicitud URI.
javax.ws.rs.core.Request La interfaz Request proporciona información sobre la solicitud, como, por ejemplo, POST o GET. Esta interfaz también puede evaluar condiciones previas en función de los códigos entidad de la solicitud.
javax.ws.rs.core.HttpHeaders La interfaz HttpHeaders proporciona acceso de sólo lectura a todas las cabeceras HTTP.
javax.ws.rs.core.SecurityContext La interfaz SecurityContext proporciona información de sólo lectura sobre la seguridad como, por ejemplo, el esquema de autenticación o el principio de seguridad.
javax.ws.rs.ext.Providers La interfaz Providers permite la recuperación de las implementaciones ContextResolver, ExceptionMapper, MessageBodyWriter o MessageBodyReader.

Además de los tipos de interfaz JAX-RS, puede inyectar tipos de contenedor web, como javax.servlet.http.HttpServletRequest, utilizando la anotación @Context como se describe en la especificación JAX-RS.

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 aplicaciones JAX-RS de varias maneras en función de sus necesidades. Para sacar partido de la funcionalidad 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 filtro IBM® JAX-RS si desea utilizar la funcionalidad disponible en el servlet y 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.

    Al especificar el servlet y filtro IBM JAX-RS específicos, puede sacar partido y asegurarse del comportamiento específico de IBM JAX-RS. Por ejemplo, el uso del filtro IBM JAX-RS puede ser útil para el desarrollo de una aplicación web con una mezcla de recursos JAX-RS y archivos JSP (JavaServer Pages) 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 utilizando parámetros de inicialización de servlet para cambiar el comportamiento y 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. Añada campos de contexto y los parámetros para obtener información sobre las solicitudes. Puede obtener información sobre las solicitudes utilizando objetos HttpHeaders, objetos UriInfo, objetos Request u objetos SecurityContext.
  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 objetos de contexto para obtener más información acerca de las solicitudes a su aplicación web JAX-RS.


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_contextobjects
File name: twbs_jaxrs_contextobjects.html