Descarga la aplicación para disfrutar aún más
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
Compartir