JAX-RS 2.0 (JSR 339) no solo especifica el API para construir un servicio web REST sino que también mejora la API del lado del cliente para facilitar el proceso de escritura de un cliente para un servicio REST.
API cliente de JAX-RS
El API del cliente JAX-RS, que es una API basada en Java para la comunicación fluida con los servicios Web REST. Este API estándar, también forma parte de Java EE 7 y está diseñado para que sea muy fácil de consumir un servicio Web expuesto a través del protocolo HTTP y permite a los desarrolladores implementar de forma concisa y eficiente soluciones del lado del cliente portátiles.
Resumen sobre el uso del cliente JAX-RS.
Podemos crear un cliente rest y relacionarlo a una URL de destino específico, con parámetros específicos utilizando los siguientes pasos:
Obtener una referencia de cliente mediante la clase ClientBuilder:
Especificar la URL destino del servicio REST utilizando el método target()
:
Manejar los parámetros de URL dinámica utilizando path()
y resolveTemplate()
:
Utilice el método request()
para iniciar la construcción de la solicitud seguido por uno de los métodos, por ejemplo, post()
, get()
:
Cada paso ofrece una variedad de posibles parámetros y opciones de configuración. Puedes consultar este recurso https://docs.oracle.com/javaee/7/tutorial/jaxrs-client.htm para conocer más sobre el API.
Dependencias
Si estamos trabajando en un proyecto Java EE (7 ó superior) no tenemos que agregar dependencias adicionales. Esto es porque agregaste la dependencia de Java EE 7 en el pom.xml
del proyecto.
Esto es:
En caso de estar trabajando en un proyecto que no sea Java EE (7 ó superior) tenemos que agregar las siguientes dependencias.
Nota:
JAX-RS es el API para la creación y consumo de servicios web y existen varias implementaciones de este API, entre ellas las dos más famosas son Jersey https://jersey.java.net/documentation/latest/index.html y REST-Easy http://resteasy.jboss.org/.
Usaremos Jersey en nuestro ejemplo.
Salida
#Todos
{"pais":[{"id":"1","nombre":"República Dominicana"},{"id":"2","nombre":"Venezuela"},{"id":"3","nombre":"Nicaragua"},{"id":"4","nombre":"Uruguay"},{"id":"5","nombre":"Haiti"}]}
#Por Id
{"id":"1","nombre":"República Dominicana"}
El ejemplo completo se encuentra aquí https://github.com/ecabrerar/javaee7-firstcup/tree/master/jaxrs/jaxrs-basic-demo