====== Guía de anotaciones JAX-RS 1.1 para servicios web REST ====== --- //[[pedrody@um.es|PEDRO DELGADO YARZA]] 2014/02/27 12:55// A continuación resumimos las anotaciones más relevantes en REST, no obstante para acceder a la documentación más detallada al respecto puede hacerse en el enlace [[http://docs.oracle.com/javaee/6/tutorial/doc/gilik.html|Creating a RESTful Root Resource Class]] ===== Anotaciones generales ===== **@Path**: Indica una URL relativa donde estará la clase Java correspondiente al servicio que expone. Esta variable puede contener variables embebidas para dar riqueza a la expresión. Puede ir situada tanto en la cabecera de la clase Java que expone el servicio como en la cabecera de los métodos de la misma para indicar las operaciones. ===== Anotaciones en métodos ===== **@GET**: Indica que la petición es una solicitud GET, similar a las HTTP. ** @POST**: Indica que la petición es una solicitud POST, simliar a las HTTP. **@PUT**: Similar a POST con la diferencia que, mientras que post no decide sobre los recursos que se generan, simplemente interactúa con ellos y es el servidor quien decide. PUT sí que especifica características de cómo han de ser los recursos. **@DELETE**: Indica la eliminación de un recurso concreto, similar a las peticiones HTTP. **@HEAD:** Similar a GET salvo que no exige un mensaje de respuesta. **@Produces**: Especifica los tipos de medios MIME(MediaType) que el método expone como de respuesta. **@Consumes**: Especifica los tipos de medios MIME(MediaType) de petición que el método acepta de entrada. ===== Anotaciones en los parámetros de los métodos ===== **@FormParam**: Utilizado para ligar parámetros de un formulario HTML con variables del servicio REST. **@PathParam**: Utilizado para ligar parámetros de una petición clasica REST con las variables del servicio. **@QueryParam**: Utilizado para ligar parámetros que vengan a través de una petición clásica GET. **@MatrixParam**: Utilizado para ligar parámetros que vengan dentro de una matriz HTTP. **@HeaderParam**: Utilizado para ligar parámetros que vengan de un valor de cabecera HTTP. **@CookieParam**: Utilizado para ligar parámetros que vengan dentro de o a un valor de cookie. **@DefaultValue** Especifica un valor por defecto. ===== Bibliografia y referencias ===== * [[http://docs.oracle.com/middleware/1212/wls/RESTF/develop-restful-service.htm#RESTF113|Oracle WebLogic Server 12c (12.1.2) - Developing and Securing RESTful Web Services for Oracle WebLogic Server - Developing RESTful Web Services]] * [[https://jersey.java.net/documentation/1.18/index.html|Jersey 1.18 User Guide]]