Definición de recursos en aplicaciones RESTful

Puede utilizar Java™ API for RESTful Web Services (JAX-RS) para desarrollar servicios que sigan los principios REST (Representational State Transfer). Los servicios RESTful se basan en la manipulación de recursos. Los recursos pueden contener datos actualizados de forma estática o dinámica. Identificando los recursos en la aplicación, puede hacer que el servicio resulte más útil y más fácil de desarrollar.

Antes de comenzar

Una vez que haya identificado la aplicación que desea exponer como un servicio RESTful, primero deberá definir los recursos para su aplicación RESTful. Una vez que haya definido los recursos para su aplicación, piense en el tipo de datos que desea exponer. Es posible que ya tenga una base de datos relacional que contenga información que desea exponer a los usuarios que utilicen la tecnología REST. ¿Ya tiene un conjunto de clases Java definidas para acceder a esos datos?

Por ejemplo, piense en el caso de una aplicación definida para dar soporte a un almacén de libros. Esta aplicación tiene actualmente una base de datos con varias tablas que definen los distintos elementos de la colección de libros y el inventario de cada libro. En este ejemplo, hay diversas formas de representar los datos de la base de datos en una aplicación RESTful. Uno enfoque consiste en considerar cada tabla como un recurso individual, de modo que cada uno de los verbos de la solicitud RESTful se correlacione con las acciones que admite la base de datos en dicha tabla como, por ejemplo, select, insert, update, delete. Este ejemplo es un método sencillo para crear una aplicación RESTful. Este enfoque utilizando el ejemplo de almacén de libros también se emplea en la documentación que describe la definición de los patrones de URL para recursos, métodos de recursos, cabeceras HTTP y códigos de respuesta, tipos de medios, y parámetros para las representaciones en recursos.

En el soporte de esta base de datos para la aplicación del almacén de libros, puede que ya exista un código responsable de acceder a la base de datos y de recuperar los datos de cada tabla. Aunque las filas de cada una de las tablas representan lógicamente cada recurso, las clases del descriptor de acceso se utilizan para definir los recursos. La documentación sobre la implementación de aplicaciones de JAX-RS proporciona más detalles sobre cómo se incorporan estas clases a la aplicación de JAX-RS.

Si lo prefiere, es posible que tenga más contenido estático que no reside en una base de datos que desee distribuir como recursos. Si se trata de una colección de documentos en varios formatos o de una fachada basada en recursos para otros sistemas remotos, cuando utilicen JAX-RS, puede distribuir el contenido de varios orígenes.

Acerca de esta tarea

Los recursos son el bloque de compilación básico de creación de un servicio RESTful. Ejemplos de un recurso 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.

Los recursos los direccionan los URL y los métodos HTTP pueden llevar a cabo operaciones en recursos. Los recursos pueden tener diversas representaciones que utilicen distintos formatos como, por ejemplo, XML y JSON. Puede utilizar cabeceras y parámetros HTTP para pasar información adicional que sea relevante para la solicitud y la respuesta.

Con JAX-RS, puede anotar objetos Java antiguos (POJO) existentes o nuevos con anotaciones específicas de JAX-RS. Las clases de recursos JAX-RS anotadas y los métodos anotados se inician, dependiendo de los patrones de URI.

Procedimiento

  1. Identifique los pasos de los recursos en la aplicación.
  2. (opcional) Identifique las clases Java existentes que puede utilizar como clases de recursos.
  3. Cree nuevas clases de Java para recursos que no tengan una clase de Java existente.

Resultados

Ha definido el contenido que desea exponer como una colección de recursos en su aplicación.

Qué hacer a continuación

En función de los recursos que haya definido, consulte sobre la definición patrones de URL para los recursos, los métodos de recursos, las cabeceras y códigos de respuesta HTTP, los tipos de medios, y los parámetros para las representaciones de solicitudes en recursos con el fin de obtener más información sobre los pasos adicionales que puede llevar a cabo para definir los recursos para su aplicación de JAX-RS.