Logo Studenta

WEBSERVICES RESTFUL CON JAVA

¡Este material tiene más páginas!

Vista previa del material en texto

GESTION Y DESARROLLO DE 
SERVICIOS WEB 2)
M.A. Alex Pacheco Moya
alex.pacheco.moya@gmail.com
WEBSERVICES RESTFUL CON JAVA
SEMANA 12
¿ Qué son los Servicios REST ?
La transferencia de estado representacional (en inglés 
REpresentational State Transfer) o REST es un estilo de 
arquitectura software para sistemas hipermedia distribuidos 
como la World Wide Web. 
El término se originó en el año 2000, en una tesis doctoral sobre 
la web escrita por Roy Fielding, uno de los principales autores de 
la especificación del protocolo HTTP y ha pasado a ser 
ampliamente utilizado por la comunidad de desarrollo.
https://es.linkedin.com/pulse/servicio-restful-utilizando-java-netbeans-82-y-wildfly-jose-de-paz
Servicios REST y Comunicación
• Cuando trabajamos con servicios REST estamos trabajando con una arquitectura
Cliente Servidor en la cual el servidor publica la información en formato de dato
puro . Normalmente en formato JSON estos datos pueden ser accedidos por una
aplicación cliente que se encargará de procesarlos y presentar el resultado en un
interface de usuario a nuestro Cliente.
https://www.arquitecturajava.com/servicios-rest/
Características de REST
• Un protocolo cliente/servidor sin estado.
• Un conjunto de operaciones bien definidas. (GET, PUT, DELETE, POST …)
• GET: obtener un recurso
• PUT: actualizar o cambiar un recurso
• DELETE: eliminar un recurso
• POST: crear un recurso
• Un concepto importante en REST es la existencia de recursos (elementos de información), que pueden ser 
accedidos utilizando un identificador global (un Identificador Uniforme de Recurso) -URI-.
https://es.linkedin.com/pulse/servicio-restful-utilizando-java-netbeans-82-y-wildfly-jose-de-paz
Stateless (Sin Estado)
Estos servicios no se encargan de mantener ningún 
tipo de estado entre peticiones y cada una de las 
peticiones es totalmente independiente de la 
siguiente. Al no mantener estado nos encontramos 
que se incrementa la escalabilidad de estos.
https://www.arquitecturajava.com/servicios-rest/
Neutralidad Tecnológica
Otra de las grandes ventajas de los Servicios REST es su neutralidad tecnológica ya que 
permite a prácticamente cualquier tipo de cliente y de lenguaje conectarse a ellos.
https://www.arquitecturajava.com/servicios-rest/
REST Recursos y Uniformidad
Otro de los conceptos claves de los servicios REST es el uso URLs orientadas a recursos
en donde cada una de ellas gestiona todas las operaciones que un recurso concreto
soporta . Ejemplos de recursos pueden ser /facturas /clientes o /libros . Cada una de
estas URLs gestiona las operaciones CRUD de cada uno de los recursos . Búsquedas
,inserciones , actualizaciones , borrados etc
https://www.arquitecturajava.com/servicios-rest/
Servicios REST y Métodos HTTP
https://www.arquitecturajava.com/servicios-rest/
Para realizar estas operaciones se hace uso de los métodos clásicos del 
protocolo HTTP
• GET: Método que solicita información al servicio
• POST : Método que inserta información del servicio
• PUT : Método que actualiza la información del servicio
• DELETE : Método que borra la información del servicio
Como funciona API RESTFUL JAVA
https://www.youtube.com/watch?v=SbhzQqP1p70
Restful Web Services
Summary
• Restful Web Services es una arquitectura cliente-servidor sin estado donde 
los servicios web son recursos y pueden identificarse por sus URI. 
• Las aplicaciones de cliente REST pueden usar métodos HTTP GET/POST 
para invocar servicios web Restful. 
• REST no especifica ningún protocolo específico para usar, pero en casi 
todos los casos se usa sobre HTTP/HTTPS. 
• En comparación con los servicios web SOAP, estos son livianos y no siguen 
ningún estándar. Podemos utilizar XML, JSON, texto o cualquier otro tipo 
de datos para solicitud y respuesta.
https://www.digitalocean.com/community/tutorials/restful-web-services-tutorial-java
Java RESTful Web Services API
RESTful (JAX-RS)
• La API de Java para servicios web RESTful (JAX-RS) 
es la API de Java para crear servicios web REST. 
• JAX-RS utiliza anotaciones para simplificar el desarrollo 
y la implementación de servicios web. 
• JAX-RS es parte de JDK, por lo que no necesita incluir 
nada para usar sus anotaciones.
https://www.digitalocean.com/community/tutorials/restful-web-services-tutorial-java
Anotaciones de servicios web Restful
Algunas de las anotaciones importantes de JAX-RS son:
• @Path: se utiliza para especificar la ruta relativa de la clase y los métodos. 
Podemos obtener el URI de un servicio web escaneando el valor de la 
anotación Path.
• @GET, @PUT, @POST, @DELETE y @HEAD: se utilizan para especificar 
el tipo de solicitud HTTP para un método.
• @Produce, @Consumes: se utiliza para especificar los tipos de solicitud y 
respuesta.
• @PathParam: se utiliza para vincular el parámetro del método al valor de la 
ruta al analizarlo.
Diferencias entre Restful Web 
Services y SOAP
1. SOAP es un protocolo mientras que REST es un estilo arquitectónico.
2. Las aplicaciones de servidor y cliente SOAP están estrechamente 
acopladas y se vinculan con el contrato WSDL, mientras que no hay 
contrato en los servicios web y el cliente REST (No hay un WSDL).
3. La curva de aprendizaje es más fácil para REST en comparación con los 
servicios web SOAP.
4. Los tipos de solicitud y respuesta de los servicios web REST pueden ser 
XML, JSON, texto, etc., mientras que SOAP solo funciona con XML.
5. JAX-RS es la API de Java para servicios web REST, mientras que JAX-
WS es la API de Java para servicios web SOAP.
https://www.digitalocean.com/community/tutorials/restful-web-services-tutorial-java
REST (o mejor dicho RESTFul API)
Conclusion
Representational State Transfer o Transferencia de Estado Representacional.
❑Es otra arquitectura de software para hacer web services (también basada en el 
protocolo HTTP) .
❑Es mas moderna, y se esta haciendo cada vez mas popular por que cada vez es 
mas popular el JavaScript.
❑Mejora ciertos aspectos de la norma Web Service SOAP, y en otros 
genera nuevos problemas, por que es un grupo de 
recomendaciones, y no es una norma que no da lugar a dudas o 
interpretaciones.
Web Service Soap
Simíl con la operación en un aeropuerto
Web Service SOAp es como una comunicación entre la torre de control y 
los pilotos de los aviones.
No hay malentendidos porque hay un acuerdo (contrato) de que la 
comunicación por la radio es usando unos procedimientos, frases y alfabeto 
aeronáutico que se definieron y negociaron antes de empezar a hablar
https://www.youtube.com/watch?v=z4jjVllUX4c
Servicio RESTful con NetBeans
Java Web Application
Servicios Web Rest en JAVA Netbeans
https://www.youtube.com/watch?v=RR6qNn6V-xc
Ej01_Rest
Restful Java (Usando Maven)
https://www.youtube.com/watch?v=7eWvc1ET0KY
Payara Server
COMO CREAR UNA WEB SERVICE REST EN NETBEANS
https://www.youtube.com/watch?v=r_CGbP9kYbc
Ningun Framework
Project Ej01_Rest
Clean and Build / Deploy al Proyecto
New – Java Package
Nuevo Package en el Proyecto
RESTful Web Services from Patterns
(A partir de patrones)
Select Pattern : 
Seleccione : Simple Root Resource
Path: Producto / MiMe Type: text/html
Ruta de salida : Producto
Se va a trabajar con la clase 
ProductoResource
Se espera un formato de 
respuesta de tipo text/html
WebService RestFul
Se generan los archivos ApplicationConfig.java y ProductoResource.java
Modifique método GET en 
ProductoResource.java
Corriendo el Proyecto
(Muestra el index.html) 
Ruta del Webservice restFul
Probando el WebService
Para correr el webservice anote la ruta, en este caso añada /webresources/Producto
Agregando Ruta a método GET
En ProductoResource.java
Se agrega el Path : getHtmlProdu
Prueba del WS con nueva ruta
Para correr el webservice ahora anote la nueva ruta, en este caso
/webresources/Producto/gethtmlProdu
Agregue Metodo GET con salida XML
En ProductoResource.java
Notar que su ruta es : getXmlProdu
Prueba de GET XML
Paracorrer el webservice ahora anote la nueva ruta, en este caso
/webresources/Producto/getXmlProdu
Metodo GET con Json como salida
Crear Nuevo Package
Producto.java
Producto.java
Agregue Metodo GET con Json
En ProductoResource.java
Prueba de GET Json
Para correr el webservice ahora anote la nueva ruta, en este caso
/webresources/Producto/listar
REFERENCIAS
• Restful Web Services Tutorial in Java
https://www.digitalocean.com/community/tutorials/restful-web-services-tutorial-java
• Creando servicios RESTful con NetBeans 8
https://www.adictosaltrabajo.com/2015/09/23/creando-servicios-restful-con-netbeans-8/
• Crear Proyecto Maven & Servicio RESTful
http://proyectodocker.blogspot.com/p/crear-proyecto-maven-servicio-restful.html
• Creando un API REST en Java (parte 1)
https://www.oscarblancarteblog.com/2018/06/25/creando-un-api-rest-en-java-parte-1/
• Como crear una web service rest en Netbeans
https://www.youtube.com/watch?v=r_CGbP9kYbc
https://www.digitalocean.com/community/tutorials/restful-web-services-tutorial-java
https://www.adictosaltrabajo.com/2015/09/23/creando-servicios-restful-con-netbeans-8/
http://proyectodocker.blogspot.com/p/crear-proyecto-maven-servicio-restful.html
https://www.oscarblancarteblog.com/2018/06/25/creando-un-api-rest-en-java-parte-1/
https://www.youtube.com/watch?v=r_CGbP9kYbc
“The Good of my dissertation is to teach people 
how to think about the problems in terms of 
trade-offs, not in terms of rigid repetition..”
Roy Fielding El objetivo de mi tesis es enseñar a la gente a pensar en los 
problemas en términos de satisfacciones, no en términos de 
repetición rígida
	Diapositiva 1
	Diapositiva 2: GESTION Y DESARROLLO DE SERVICIOS WEB 2)
	Diapositiva 3: WEBSERVICES RESTFUL CON JAVA
	Diapositiva 4: ¿ Qué son los Servicios REST ?
	Diapositiva 5: Servicios REST y Comunicación
	Diapositiva 6: Características de REST
	Diapositiva 7: Stateless (Sin Estado)
	Diapositiva 8: Neutralidad Tecnológica
	Diapositiva 9: REST Recursos y Uniformidad
	Diapositiva 10: Servicios REST y Métodos HTTP
	Diapositiva 11: Como funciona API RESTFUL JAVA
	Diapositiva 12: Restful Web Services Summary
	Diapositiva 13: Java RESTful Web Services API RESTful (JAX-RS)
	Diapositiva 14: Anotaciones de servicios web Restful
	Diapositiva 15: Diferencias entre Restful Web Services y SOAP
	Diapositiva 16: REST (o mejor dicho RESTFul API) Conclusion
	Diapositiva 17: Web Service Soap Simíl con la operación en un aeropuerto
	Diapositiva 18
	Diapositiva 19: Java Web Application
	Diapositiva 20: Ej01_Rest
	Diapositiva 21: Payara Server
	Diapositiva 22: Ningun Framework
	Diapositiva 23: Project Ej01_Rest
	Diapositiva 24: Clean and Build / Deploy al Proyecto
	Diapositiva 25: New – Java Package
	Diapositiva 26: Nuevo Package en el Proyecto
	Diapositiva 27: RESTful Web Services from Patterns (A partir de patrones)
	Diapositiva 28: Select Pattern : Seleccione : Simple Root Resource
	Diapositiva 29: Path: Producto / MiMe Type: text/html
	Diapositiva 30: WebService RestFul
	Diapositiva 31: Modifique método GET en ProductoResource.java
	Diapositiva 32: Corriendo el Proyecto (Muestra el index.html) 
	Diapositiva 33: Ruta del Webservice restFul
	Diapositiva 34: Probando el WebService
	Diapositiva 35: Agregando Ruta a método GET En ProductoResource.java
	Diapositiva 36: Prueba del WS con nueva ruta
	Diapositiva 37: Agregue Metodo GET con salida XML En ProductoResource.java 
	Diapositiva 38: Prueba de GET XML
	Diapositiva 39: Metodo GET con Json como salida Crear Nuevo Package
	Diapositiva 40: Producto.java
	Diapositiva 41: Producto.java
	Diapositiva 42: Agregue Metodo GET con Json En ProductoResource.java
	Diapositiva 43: Prueba de GET Json
	Diapositiva 44: REFERENCIAS
	Diapositiva 45

Continuar navegando