Arquitecturas REST (Representa3onal State Transfer)

Documentos relacionados
INTERCAMBIO DE OBJETOS

HTTP Introducción. Redes de Datos Ing. Marcelo Utard / Ing. Pablo Ronco FACULTAD DE INGENIERIA UNIVERSIDAD DE BUENOS AIRES

Tema 2 El Servicio Web

HyperText Transfer Protocol

Ejercicio 6. Persistencia con JPA - Sistema SGA. Java EE. Ejercicio 6. Persistencia con JPA Sistema SGA. Curso de Java EE

SOAP (Simple Object Access Protocol)

Redes de Computadores II

Si usted quiere desarrollar con Bluevia y Java, esto es lo primero que debe saber

HyperText Transfer Protocol

Tutorial Servicios Web

Funcionamiento de Servicios Web, FTP

WEB Y HTTP. HTTP: Hypertext Transfer Protocol [RFC 1945] [RFC 2616] Web Page URL (Uniform/Universal Resource Identifier)

Capa de Aplicación (Parte 2 de 2)

Protocolo HTTP Apache. Servicios HTTP. Esteban De La Fuente Rubio L A TEX. Universidad Andrés Bello. 17 jun 2011

La web (el servicio WWW)

DESARROLLO DE APLICACIONES PARA LA WEB II

HTTP. Redes I. Departamento de Sistemas Telemáticos y Computación (GSyC) Noviembre de GSyC HTTP 1

Documentación de la API clickline.com

Redes de Computadoras Práctica 4: World Wide Web

Servicio de publicación de información web (HTTP)

Clase 22 Nivel de Aplicación WWW Tema 6.- Nivel de aplicación en Internet

TECNOLOGÍAS ASOCIADAS A LAS APLICACIONES WEB

Servicios REST Bases de la tecnología con Spring MVC

Construir RIA usando Flex. Eduardo Ostertag Jenkins, Ph.D. OBCOM INGENIERIA S.A.

Servicios web. Jorge Iván Meza Martínez

TEMA 3: La Aplicación World Wide Web

UD 4: Instalación y administración de servicios Web SRI

Introducción a las Aplicaciones Web

URL. Después de los dos puntos: se interpreta según el método de acceso. Suele contener direcciones y puntos de acceso en una máquina. Esquema URL.

RESTful 4 all. Diego Sapriza

Requisitos. Universidad ORT Arquitectura de Software

LABORATORIO DE RC: PRÁCTICA 4: IMPLEMENTACIÓN DE UN CLIENTE DE CORREO

Protocolos de WWW. Bibliografía: Redes de Computadores: un enfoque descendente basado en Internet : J.F Kurose y K.W. Ross. GSyC 2007.

Sockets en Java. La Creatividad proviene de un conflicto de ideas. Uso de Sockets

Especificación WebService para:

Router Teldat. Protocolo HTTP

Tema 4: Tecnologías Web Java

SERVIDOR WEB MULTIPLATAFORMA CON IMPLEMENTACIÓN CGI

PRUEBAS FUNCIONALES Y DE ACEPTACIÓN

5.1 Introducción. 5.2 El protocolo HTTP.

Sistemas Distribuidos Basados en la WEB

Pantalla de ejemplo para desarrollar la cancelación

Punto 3 Protocolo HTTP. Juan Luis Cano

Sesión 17. Servicios web RESTful

TEMA 5. Otras arquitecturas distribuidas IV. Web Services

Quiz 11: Crear preguntas. Juan Quemada, DIT - UPM

Tema 1 HTTP y aplicaciones web

Web Tier en JAVA. Nicolás Troncoso Carrère. Valparaíso, ILI 258 Departamento de Informática Universidad Técnica Federico Santa María

Tema 2: Protocolo HTTP.

TEMARIO. 4-Servlet Definición de servlet El Web Container y el ciclo de vida de los servlets El ciclo request- response.

Ataques Web Automáticos: Identificación, Engaño y Contraataque

Plataforma de Contratación del Sector Público

GUIA DE LABORATORIO N 8 A(Netbeans-java,Glassfish)

ATLAS MANUAL DE INTEGRACIÓN

Guía de migración a firma HMAC SHA256 Conexión por Redirección

Sesión 5 Introducción a REST

Código de ética. Temario. Herramientas. Entrar en ubuntu

Desarrollo y servicios web

Conexión SQL Server y C# (Consola)

Tema 4: Diseño e Implementación de la Capa Web

PROTOCOLO HTTP. Hypertext Transfer Protocol

Aplicaciones y Servicios Web (Web Services)

1. Ejemplo de clase : La clase Cuenta 2. Uso de la clase Cuenta. 3. Métodos y objetos receptores de mensajes (Importante)

Desarrollo y servicios web

Anexo Técnico 005 Servicio de Recepción de Facturas Electrónicas

SIVEGAM Sistema de verificación del gasto mensual Protocolo SIVEGAM. Superintendencia de Seguridad Social. Versión 1.0

MICROSITIOS. Perfiles

Análisis del Proxy-Cache y Reverse-Proxy

iresetme V Instalación completa iresetme v2.0

WEB SERVICES CREACIÓN DEL SERVICIO

Tema 5. Tecnologías web. Antonio Sanz Comercio Electrónico

Programación orientada a objetos

PREPARATORIA DIURNA DE CUAUTLA

Manejo de datos BLOB con PHP y MySQL

Introducción a WS-REST. Ing. Guillermo Roldós Agosto 2010

PHP Hypertext PreProcessor

Práctica sobre compartición de instancias remotas.

GLOSARIO. Arquitectura: Funcionamiento, estructura y diseño de una plataforma de desarrollo.

Servicio común de consulta por CSV para aplicaciones productoras

Desarrollo y servicios web

Laboratorio de Aplicaciones Telemáticas (Curso 2009/2010)

NIVEL 16: ESTRUCTURAS N-ARIAS RECURSIVAS Aplicaciones Web, Html y Servlets. ISIS1206 Estructuras de Datos

Laboratorio de Computación IV. Clase 1. Andrés Fortier

Arquitectura y Diseño de Sistemas Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur Primer Cuatrimestre de 2015

Qué es un servicio de Proxy?

Laboratorio JDBC - Base de datos con Java

Portal Inteligente Medellín Documentación de la Arquitectura de Software

Transcripción:

Arquitecturas REST (Representa3onal State Transfer)

Protocolo HTTP Hypertext Transfer Protocol RFC2616:h"p://www.ie*.org/rfc/rfc2616.txt Protocolo orientado a transacciones Esquema pe3ción/respuesta entre un cliente (navegador) y un servidor web Protocolo sin estado Basado en la localización de recursos (URLs) Puerto80

Protocolo HTTP Servicios Web y Servicios Arquitecturas Web y REST Arquitecturas RES Protocolo HTTP Protocolo HTTP Modelo de comunicación Modelo de web comunicación web m Modelo de comunicación web Cliente Web (Navegador) Petición HTTP Cliente Web (Navegador) Respuesta HTTP Paquete HTTP Paquete HTTP Paquete HTTP Servidor Web Petición HTTP Respuesta HTTP o D In d W Servid Web Cabecera Cuerpo Cabecera Cuerpo

ervicios Web y Arquitecturas REST rotocolo HTTP - Petición Métodos: Protocolo HTTP - Pe3ción máster online en Dirección e Ingeniería de Sitios Web GET / HTTP/1.1 1 Host: www.google.es User-Agent: <cliente-web> Métodos: GET: Solicita un recurso GET: PUT: Solicita Actualiza un recurso un recurso PUT: POST: Actualiza Solicita un recurso procesar recurso con los datos POST: enviados Solicita procesar recurso con los datos enviados DELETE: Elimina i un recurso DELETE: Elimina un recurso Otros métodos: HEAD, TRACE, OPTIONS y CONNECT Otros métodos: HEAD, TRACE, OPTIONS y CONNECT

icios Web y Arquitecturas REST colo HTTP - Petición Protocolo HTTP - Pe3ción ibutos Atributos de la Cabecera de la Cabecera HTTP: HTTP: máster Accept: Tipos de contenido aceptados ccept: Tipos de contenido aceptados online en Accept- charset: Conjunto de caracteres aceptados Dirección e ccept-charset: Accept- encoding: Conjunto de Codificación caracteres caracteres aceptados aceptados Ingeniería ccept-encoding: Accept- language: Codificación Idiomas caracteres aceptados aceptados de Sitios ccept-language: Cookie: Cookie Idiomas enviada aceptados previamente por el servidor Web ookie: Cookie Content- length: enviada previamente Longitud de la por pe3ción el servidor Content- type: Tipo MIME del cuerpo de la pe3ción ontent-length: Longitud de la petición Date: Fecha/hora de la solicitud ontent-type: User- Agent: Tipo MIME Tipo del agente cuerpo de usuario de la petición u3lizado ate: Fecha/hora Otros atributos: de la solicitud Authoriza3on, Cache- control, Connec3on, ser-agent: If- Modified- Since, Tipo agente de If- None- Match usuario utilizado tros atributos: Authorization, Cache-control, onnection, If-Modified-Since, If-None-Match GET / HTTP/1.1 Host: www.google.es User-Agent: <cliente-web>

Servicios Web y Arquitecturas REST Protocolo HTTP - Respuesta Protocolo HTTP Respuesta HTTP/1.1 200 OK Date: <fecha> Content-type: t t text/htmlt/ht Content-length: <tamaño> máster online en Direcció Ingenier de Sitios Web <html> </html> Códigos de respuesta: Códigos de respuesta: 1xx: Mensajes 2xx: Operación exitosa 3xx: Redirección 4xx: 4xx: Error en en el el cliente (p.e: (p.e: 404, 404, no no encontrado) Coordinador: 5xx: Dr. Error Javier en Parra el Fuente servidor 5xx: Error en el servidor

Protocolo HTTP Respuesta Atributos de la Cabecera HTTP: Content- encoding: Codificación u3lizada en el mensaje Content- language: Idioma u3lizado en el mensaje Content- length: Tamaño del mensaje Content- type: Tipo MIME del contenido Date: Fecha/hora de la respuesta Expires: Fecha de expiración del contenido para eliminarse de la caché Server: Iden3fica el 3po de servidor Set- cookie: Ac3va una cookie en el cliente Otros atributos: Cache- control, Content- loca3on, Etag, WWW- Authen3cate

Protocolo HTTP Ejemplo Servicios Web y Arquitecturas REST Protocolo HTTP - Ejemplo hdp://web- sniffer.net/ http://web-sniffer.net/ más onlin Dire Inge de S Web

REST Es3lo arquitectónico de servicios web Basado en el modelo de comunicación de la World Wide Web Toma como referencia el protocolo HTTP Basado en la ges3ón de recursos en lugar de métodos de negocio

REST Métodos U3liza directamente los métodos HTTP: POST: crea un recurso POST /usuarios HTTP/1.1 Host: miservidor Content- type: applica3on/xml <usuario> <nombre>carlos</nombre> </usuario> GET: ob3ene un recurso GET /usuarios/carlos HTTP/1.1 Host: miservidor Accept: applica3on/xml

REST Métodos PUT: modifica un recurso PUT /usuarios/javier HTTP/1.1 Host: miservidor Content- Type: applica3on/xml <usuario> <nombre>juan</nombre> </usuario> DELETE: elimina un recurso DELETE /usuarios/carlos HTTP/1.1 Host: miservidor

REST URI (Uniform Resource Iden3fier) Localización del recurso web GET <URI> HTTP/1.1 Host: miservidor Accept: applica3on/xml Debe ser autodescrip3vo Recursos organizados jerárquicamente h(p://www.servicio.org/empresa/empleados/{empleado}

REST Atributo Content- type Indica el 3po MIME de la pe3ción HTTP Facilita la correcta interpretación por el servidor POST /usuarios HTTP/1.1 Host: miservidor Content- type: applica3on/xml <usuario> <nombre>carlos</nombre> </usuario>

REST Atributo Accept Indica el 3po MIME de la respuesta Facilita la correcta interpretación por el cliente GET /usuarios/carlos HTTP/1.1 Host: miservidor Accept: applica>on/xml Ejemplos: JSON: applica3on/json XML: applica3on/xml XHTML:applica3on/xhtml+xml

REST vs. SOAP Ejemplo: Servicio web librería Pe3ción Mensaje REST: hdp://www.milibreria.com/listaprecios/libros/thinkinginjava GET /listaprecios/libros/thinkinginjava HTTP/1.1 Host: www.milibreria.com Accept: applica>on/xml

REST vs. SOAP Mensaje SOAP POST /GetPrecio HTTP/1.1 User Agent; Mozilla/4.0 (Linux) Host: cmontenegro:8080 Content- Type: text/xml; charset= up- 8 Content- length: 548 SOAPAc3on: /GetPrecio <?xml version= 1.0?> <SOAP- ENV:Envelope xmlns:soap- ENV= hdp://schemas.xmlsoap.org/soap/envelope/ xmlns:xsi= hdp://www.w3c.org/2001/xmlschema- instance xmlns:xsd= hdp://www.w3c.org/2001/xmlschema SOAP- ENV:encodingStyle= hdp://schemas.xmlsoap.org/soap/encoding/ > <SOAP- ENV:Header> </SOAP- ENV:Header> <SOAP- ENV:Body> <m:getprecio xmlns:m= hdp://www.milibreria.com/listaprecios/ > <nombrelibro xsi:type= xsd:string > Thinking in Java </nombrelibro> </m:getprecio> </SOAP- ENV:Body> </SOAP- ENV:Envelope>

REST vs. SOAP Respuesta Mensaje REST: HTTP/1.1 200 OK Date: <fecha> Content- type: applica3on/xml Content- length: <tamaño> <libreria xmlns="..."> <precio>49.99</precio> </libreria>

REST vs. SOAP Mensaje SOAP HTTP/1.1 200 OK Connec3on: close Content- length: 526 Content- Type: text/xml; charset= up- 8 Date: Mon, 1 Feb 2010 11:04:19 GMT Server: Apache/1.3.0 <?xml version= 1.0?> <SOAP- ENV:Envelope xmlns:soap- ENV= hdp://schemas.xmlsoap.org/soap/envelope/ xmlns:xsi= hdp://www.w3c.org/2001/xmlschema- instance xmlns:xsd= hdp://www.w3c.org/2001/xmlschema SOAP- ENV:encodingStyle= hdp://schemas.xmlsoap.org/soap/encoding/ > <SOAP- ENV:Body> <m:getpreciorespuesta mlns:m= hdp://www.milibreria.com/listaprecios/ > <precio> 49.99 </precio> </m:getpreciorespuesta> </SOAP- ENV:Body> </SOAP- ENV:Envelope>

Prác3ca 3 1. Ponga en funcionamiento la prác3ca que se presenta a con3nuación. 2. Posteriormente, cree su propio cliente de servicio REST que conecte con otro servicio web. 3. Por úl3mo, haga un manual de los pasos que ha ido realizando al crear su cliente (incluya pantallazo de cada paso). Debera enviar este manual.

Prác3ca 3 Netbeans Herramienta: Netbeans: h"p://www.netbeans.org/

Prác3ca 3 Pasos 1. Crear un repositorio persistente 2. Crear un proyecto 3. Crear el recurso 4. Crear el servicio web REST asociado al recurso 5. Probar el servicio web REST

Prác3ca 3.1 Crear Repositorio Servicios Web Web y Arquitecturas y REST REST Práctica 3.1 3.1 Crear Crear Repositorio Persistente Persistente. a. Conectar a la a Base la Base de de Datos Datos (sample) a. Conectar a la Base de Datos (sample) 2 1 2 1 máster online online Direcció Ingenie de de Sitio S Web Web b. Crear la Tabla en la Base de Datos (Empleado). b. Crear Crear la Tabla Tabla en en la Base la Base de de Datos Datos (Empleado) 4 4 3 3 5 5

Prác3ca 3.1 Crear Repositorio Servicios Web y Arquitecturas REST Práctica 3.1 Crear Persistente Repositorio Persistente Añadir filas a la Tabla c. Añadir filas a la Tabla mást onlin Direc Ingen de Si Web 5

Servicios Web y Arquitecturas REST Práctica 3.2 Crear Proyecto Prác3ca 3.2 Crear Proyecto a. Crear un nuevo proyecto a. Crear un nuevo proyecto 1 3 2 máster online e Direcci Ingenie de Sitio Web 5 4 24 6

Prác3ca 3.2 Crear Proyecto vicios Web y Arquitecturas REST ctica 3.2 Crear Proyecto b. Añadir driver al proyecto ñadir driver al proyecto máster online en Dirección e Ingeniería de Sitios Web 8 7 9

Prác3ca 3.3 Crear Recurso (En3dad Servicios Web y Arquitecturas REST Práctica 3.3 Crear Persistente) Recurso (Entidad Persistente) 1 3 2 mást onlin Direc Ingen de S Web 4

Prác3ca 3.3 Crear Recurso (En3dad Servicios Web y Arquitecturas REST Persistente) Práctica 3.3 Crear Recurso (Entidad Persistente) máster online e Direcci Ingenie de Sitio Web 5 6

Prác3ca 3.3 Crear Recurso (En3dad Persistente) package persistencia; import java.io.serializable; import javax.persistence.basic; import javax.persistence.column; import javax.persistence.en3ty; import javax.persistence.id; import javax.persistence.namedqueries; import javax.persistence.namedquery; import javax.persistence.table; import javax.valida3on.constraints.notnull; import javax.valida3on.constraints.size; import javax.xml.bind.annota3on.xmlrootelement; /** * * @author CarlosM */ @En>ty @Table(name = "EMPLEADO") @XmlRootElement @NamedQueries({ @NamedQuery(name = "Empleado.findAll", query = "SELECT e FROM Empleado e"), @NamedQuery(name = "Empleado.findById", query = "SELECT e FROM Empleado e WHERE e.id = :id"), @NamedQuery(name = "Empleado.findByNombre", query = "SELECT e FROM Empleado e WHERE e.nombre = :nombre"), @NamedQuery(name = "Empleado.findBySueldo", query = "SELECT e FROM Empleado e WHERE e.sueldo = :sueldo")}) public class Empleado implements Serializable { private sta3c final long serialversionuid = 1L; @Id @Basic(op3onal = false) @NotNull @Column(name = "ID") private Integer id; @Size(max = 20) @Column(name = "NOMBRE") private String nombre; // @Max(value=?) @Min(value=?)//if you know range of your decimal fields consider using these annota3ons to enforce field valida3on @Column(name = "SUELDO") private Float sueldo;

Prác3ca 3.3 Crear Recurso (En3dad Persistente) public Empleado() { } public Empleado(Integer id) { this.id = id; } public Integer getid() { return id; } public void setid(integer id) { this.id = id; } public String getnombre() { return nombre; } public void setnombre(string nombre) { this.nombre = nombre; } public Float getsueldo() { return sueldo; } public void setsueldo(float sueldo) { this.sueldo = sueldo; }

Servicios Web y Arquitecturas REST Práctica 3.4 Crear Servicio Web REST Prác3ca 3.4 Crear Servicio Web REST má 1 onl Dire Ing de We 2 3

oordinador: Dr. Javier Parra Fuente Prác3ca 3.4 Crear Servicio Web REST Servicios Web y Arquitecturas REST Práctica 3.4 Crear Servicio Web REST 5 4 máster online en Dirección e Ingeniería de Sitios Web 6

Prác3ca 3.5 Probar Servicio Web ervicios Web y Arquitecturas REST REST ráctica 3.5 Probar Servicio Web REST 1 máster online en Dirección e Ingeniería 3 de Sitios Web 2 32