SlideShare una empresa de Scribd logo
1 de 18
REST & JERSEY
Fernando Román
Oriol Ramírez
Albert Raventós
INTRODUCCIÓN
• REST == “Representational State Transfer”
• Es una Arquitectura de servicios distribuidos basada en
  estándares web y HTTP
• Buenas prácticas para servicios distribuidos
• Descrita en por Roy Fielding en el año 2000
• Basada en recursos
• Los recursos pueden tener diferentes representaciones
SERVICIOS RESTFul
• Un servicio es REST si cumple estas 6 Restricciones:
  •   Uniforme
  •   Sin estados (Stateless)
  •   Modelo Cliente-Servidor
  •   Cacheable
  •   Sistema bajado en Capas (Layered System)
  •   Ejecución de código bajo demanda
BASADO EN RECURSOS
•   Objetos vs. Acciones
•   Nombres vs. Verbos
•   SOAP - Simple Object Access Protocol
•   Recursos identificados por IDs únicas(URIs)
    • Múltiples URIs pueden apuntar a un recurso pero cada URI solo
      puede apuntar a un recurso.
REPRESENTACIONES
• CRUD: Create – Read – Update – Delete
• REST va más alla porque soporta muchas representaciones
  para un mismo recurso:
  • XML, PDF, PNG, JSON, HTML, TEXTO…
• Cada recurso tiene un estado interno que no puede ser
  accedido directamente desde el exterior
• Una representación es el formato de datos utilizado para la
  transferencia del estado público de un recurso.
• Diferentes formatos de representación pueden proporcionar
  diferentes datos de un recurso.
Uniform Interface I
•   Define la interfaz entre cliente y servidor
•   Simplifica y separa la arquitectura
•   Es fundamental para el diseño RESTful
•   Significa:
    • HTTP verbs (GET, PUT, POST, DELETE)
    • URIs (nombres de recursos)
    • HTTP response (status, body)
Uniform Interface II
•   Basado en recursos
•   La manipulación de los recursos a través de representaciones
•   Mensajes auto-descriptivos
•   Hypermedia as the Engine of Application State (HATEOAS)
STATELESS
• El servidor no contiene estados de cliente
• Cada request contiene suficiente información para procesar el
  mensaje
• Mensajes autp-descriptivos
• Cualquier estado de sesión es ayudar en el cliente
Client-Server
• Suponemos que es un sistema desconectado
• Separación de problemas
• Una interfaz uniforme es la conexión entre ambos lados
CACHE
• Las respuestas del servidor (representaciones) se pueden
  cachear
  • Implicitly
  • Explicitly
  • Negociated
LAYERED SYSTEM
• El cliente no puede asumir una conexión directa con el
  servidor
• Software o hardware intermediarios entre el cliente y el
  servidor
• Mejora la escalabilidad
CODE ON DEMAND
•   Servidor puede extender temporalmente cliente
•   Transferir la lógica al cliente
•   El cliente calcula
•   Por ejemplo:
    • Java applets
    • JavaScript
• La única restricción opcional
REST vs RPC
• REST: Proporciona al cliente una interfaz sencilla de acceso a
  los recursos, 4 acciones posibles.

• RPC: Proporciona gran cantidad de acciones (metodos) a
  ejecutar sobre los recursos.
Ejemplo REST vs RPC
• Cómo obtener la lista de ciudades de España:

• RPC: listcities(Spain)

• REST: GET a la URL
  http://www.example.org/service?country=Spain
  • Generación dinámica de representaciones
  • URIs Opacas vs URIs Constructivas
REST vs SOAP
• SOAP también está orientado a objetos pero no existe un
  conjunto de operaciones estándar.

• Cada sistema SOAP requiere de un cliente que implemente el
  conjunto de operaciones que soporta.
CONCLUSIONES
• Para que un servicio sea RESTFul debe cumplir todas las
  limitaciones
• Cumplir con REST nos permite obtener servicios distribuidos
  • Escalables
  • Simples
  • Robustos
Jersey
• Una manera de aplicar REST en Java.
Jersey
• Facilita la manera de obtener los objetos.
  • Se puede combinar con JSON para enviarlos
• Ejemplo
• REST puede ser una manera útil y clara para pasar objetos a
  otros dispositivos (android, clientes de consola, etc);

Más contenido relacionado

La actualidad más candente

8/9 Curso JEE5, Soa, Web Services, ESB y XML
8/9 Curso JEE5, Soa, Web Services, ESB y XML8/9 Curso JEE5, Soa, Web Services, ESB y XML
8/9 Curso JEE5, Soa, Web Services, ESB y XMLJuan Carlos Rubio Pineda
 
Web Service and PHP, REST and SOAP
Web Service and PHP, REST and SOAPWeb Service and PHP, REST and SOAP
Web Service and PHP, REST and SOAPElwin Huaman
 
SEMINARIO: Servicios REST. Bases de la tecnología y soporte con Spring MVC
SEMINARIO: Servicios REST. Bases de la tecnología y soporte con Spring MVCSEMINARIO: Servicios REST. Bases de la tecnología y soporte con Spring MVC
SEMINARIO: Servicios REST. Bases de la tecnología y soporte con Spring MVCParadigma Digital
 
SOA Latam Workshop: Comparison Dropwizard, ratpack & Spring Boot
SOA Latam Workshop: Comparison Dropwizard, ratpack & Spring BootSOA Latam Workshop: Comparison Dropwizard, ratpack & Spring Boot
SOA Latam Workshop: Comparison Dropwizard, ratpack & Spring BootDomingo Suarez Torres
 
talkapp api para desarrolladores
talkapp api para desarrolladorestalkapp api para desarrolladores
talkapp api para desarrolladorestalkapp
 
Web services-con-php
Web services-con-phpWeb services-con-php
Web services-con-phpLinkser SA.
 
Tutorial Web Services en PHP, REST, SOAP
Tutorial Web Services en PHP, REST, SOAPTutorial Web Services en PHP, REST, SOAP
Tutorial Web Services en PHP, REST, SOAPElwin Huaman
 
Cliente servidor
Cliente servidorCliente servidor
Cliente servidorHaroldConde
 
Nuxt Avanzado (de Scaffolding a MVP)
Nuxt Avanzado (de Scaffolding a MVP)Nuxt Avanzado (de Scaffolding a MVP)
Nuxt Avanzado (de Scaffolding a MVP)Rafael Casuso Romate
 
Explorando html5 - Inicio
Explorando html5 - InicioExplorando html5 - Inicio
Explorando html5 - InicioEdison Monsalve
 

La actualidad más candente (20)

8/9 Curso JEE5, Soa, Web Services, ESB y XML
8/9 Curso JEE5, Soa, Web Services, ESB y XML8/9 Curso JEE5, Soa, Web Services, ESB y XML
8/9 Curso JEE5, Soa, Web Services, ESB y XML
 
Orm
OrmOrm
Orm
 
Servicios web
Servicios webServicios web
Servicios web
 
Web Service and PHP, REST and SOAP
Web Service and PHP, REST and SOAPWeb Service and PHP, REST and SOAP
Web Service and PHP, REST and SOAP
 
SEMINARIO: Servicios REST. Bases de la tecnología y soporte con Spring MVC
SEMINARIO: Servicios REST. Bases de la tecnología y soporte con Spring MVCSEMINARIO: Servicios REST. Bases de la tecnología y soporte con Spring MVC
SEMINARIO: Servicios REST. Bases de la tecnología y soporte con Spring MVC
 
Arquitectura REST
Arquitectura RESTArquitectura REST
Arquitectura REST
 
SOA Latam Workshop: Comparison Dropwizard, ratpack & Spring Boot
SOA Latam Workshop: Comparison Dropwizard, ratpack & Spring BootSOA Latam Workshop: Comparison Dropwizard, ratpack & Spring Boot
SOA Latam Workshop: Comparison Dropwizard, ratpack & Spring Boot
 
Api rest ful
Api rest fulApi rest ful
Api rest ful
 
SGCE 2014 micro services
SGCE 2014 micro servicesSGCE 2014 micro services
SGCE 2014 micro services
 
talkapp api para desarrolladores
talkapp api para desarrolladorestalkapp api para desarrolladores
talkapp api para desarrolladores
 
Web services-con-php
Web services-con-phpWeb services-con-php
Web services-con-php
 
Introducción a REST - SymfonyVLC
Introducción a REST - SymfonyVLCIntroducción a REST - SymfonyVLC
Introducción a REST - SymfonyVLC
 
Tutorial Web Services en PHP, REST, SOAP
Tutorial Web Services en PHP, REST, SOAPTutorial Web Services en PHP, REST, SOAP
Tutorial Web Services en PHP, REST, SOAP
 
3/9 soa y web services
3/9 soa y web services3/9 soa y web services
3/9 soa y web services
 
Mule ESB
Mule ESBMule ESB
Mule ESB
 
Rest
RestRest
Rest
 
¿Que es javascript y Modulos?
¿Que es javascript y Modulos?¿Que es javascript y Modulos?
¿Que es javascript y Modulos?
 
Cliente servidor
Cliente servidorCliente servidor
Cliente servidor
 
Nuxt Avanzado (de Scaffolding a MVP)
Nuxt Avanzado (de Scaffolding a MVP)Nuxt Avanzado (de Scaffolding a MVP)
Nuxt Avanzado (de Scaffolding a MVP)
 
Explorando html5 - Inicio
Explorando html5 - InicioExplorando html5 - Inicio
Explorando html5 - Inicio
 

Similar a Seminario IV: REST & Jersey

Documertar APIs - Meetup.js
Documertar APIs - Meetup.jsDocumertar APIs - Meetup.js
Documertar APIs - Meetup.jsEzequiel Rial
 
Rest clase 4 - curso front-end 2014 - open webinars
Rest   clase 4 - curso front-end 2014 - open webinarsRest   clase 4 - curso front-end 2014 - open webinars
Rest clase 4 - curso front-end 2014 - open webinarsOpenWebinars.net
 
Integración de Tecnologías y Plataformas.pptx
Integración de Tecnologías y Plataformas.pptxIntegración de Tecnologías y Plataformas.pptx
Integración de Tecnologías y Plataformas.pptxLuisTenorio42
 
Fundamentos para el diseño de una RESTful API pragmática
Fundamentos para el diseño de una RESTful API pragmáticaFundamentos para el diseño de una RESTful API pragmática
Fundamentos para el diseño de una RESTful API pragmáticaLeoWong91
 
10-Unidad 3: Diseños de Vista-3.2 Usos Web Services
10-Unidad 3: Diseños de Vista-3.2 Usos Web Services10-Unidad 3: Diseños de Vista-3.2 Usos Web Services
10-Unidad 3: Diseños de Vista-3.2 Usos Web ServicesLuis Fernando Aguas Bucheli
 
Servicios web
Servicios webServicios web
Servicios webfermt18
 
Curso: Programación Web con Tecnología Java
Curso:  	Programación Web con Tecnología JavaCurso:  	Programación Web con Tecnología Java
Curso: Programación Web con Tecnología Javaalvaro alcocer sotil
 

Similar a Seminario IV: REST & Jersey (20)

Documertar APIs - Meetup.js
Documertar APIs - Meetup.jsDocumertar APIs - Meetup.js
Documertar APIs - Meetup.js
 
S7-DAW-2022S1.pptx
S7-DAW-2022S1.pptxS7-DAW-2022S1.pptx
S7-DAW-2022S1.pptx
 
REST - deSymfony2012
REST - deSymfony2012REST - deSymfony2012
REST - deSymfony2012
 
sesion01-traspas.pdf
sesion01-traspas.pdfsesion01-traspas.pdf
sesion01-traspas.pdf
 
Rest clase 4 - curso front-end 2014 - open webinars
Rest   clase 4 - curso front-end 2014 - open webinarsRest   clase 4 - curso front-end 2014 - open webinars
Rest clase 4 - curso front-end 2014 - open webinars
 
Semana 7 Servicios Web API REST con Mongodb
Semana 7   Servicios Web API REST con MongodbSemana 7   Servicios Web API REST con Mongodb
Semana 7 Servicios Web API REST con Mongodb
 
Integración de Tecnologías y Plataformas.pptx
Integración de Tecnologías y Plataformas.pptxIntegración de Tecnologías y Plataformas.pptx
Integración de Tecnologías y Plataformas.pptx
 
Fundamentos para el diseño de una RESTful API pragmática
Fundamentos para el diseño de una RESTful API pragmáticaFundamentos para el diseño de una RESTful API pragmática
Fundamentos para el diseño de una RESTful API pragmática
 
Paper ieee
Paper ieeePaper ieee
Paper ieee
 
SEVILLA Meetups29112022_sh.pptx
SEVILLA Meetups29112022_sh.pptxSEVILLA Meetups29112022_sh.pptx
SEVILLA Meetups29112022_sh.pptx
 
10-Unidad 3: Diseños de Vista-3.2 Usos Web Services
10-Unidad 3: Diseños de Vista-3.2 Usos Web Services10-Unidad 3: Diseños de Vista-3.2 Usos Web Services
10-Unidad 3: Diseños de Vista-3.2 Usos Web Services
 
Servicios web
Servicios webServicios web
Servicios web
 
Introducción a ASP.NET Web API
Introducción a ASP.NET Web APIIntroducción a ASP.NET Web API
Introducción a ASP.NET Web API
 
Web services1
Web services1Web services1
Web services1
 
S4-PD2-2.2. REST
S4-PD2-2.2. RESTS4-PD2-2.2. REST
S4-PD2-2.2. REST
 
Capitulo 2 servidores
Capitulo 2   servidoresCapitulo 2   servidores
Capitulo 2 servidores
 
Capitulo 2 servidores
Capitulo 2   servidoresCapitulo 2   servidores
Capitulo 2 servidores
 
Capitulo 2 servidores
Capitulo 2   servidoresCapitulo 2   servidores
Capitulo 2 servidores
 
Capitulo 2 servidores
Capitulo 2   servidoresCapitulo 2   servidores
Capitulo 2 servidores
 
Curso: Programación Web con Tecnología Java
Curso:  	Programación Web con Tecnología JavaCurso:  	Programación Web con Tecnología Java
Curso: Programación Web con Tecnología Java
 

Seminario IV: REST & Jersey

  • 1. REST & JERSEY Fernando Román Oriol Ramírez Albert Raventós
  • 2. INTRODUCCIÓN • REST == “Representational State Transfer” • Es una Arquitectura de servicios distribuidos basada en estándares web y HTTP • Buenas prácticas para servicios distribuidos • Descrita en por Roy Fielding en el año 2000 • Basada en recursos • Los recursos pueden tener diferentes representaciones
  • 3. SERVICIOS RESTFul • Un servicio es REST si cumple estas 6 Restricciones: • Uniforme • Sin estados (Stateless) • Modelo Cliente-Servidor • Cacheable • Sistema bajado en Capas (Layered System) • Ejecución de código bajo demanda
  • 4. BASADO EN RECURSOS • Objetos vs. Acciones • Nombres vs. Verbos • SOAP - Simple Object Access Protocol • Recursos identificados por IDs únicas(URIs) • Múltiples URIs pueden apuntar a un recurso pero cada URI solo puede apuntar a un recurso.
  • 5. REPRESENTACIONES • CRUD: Create – Read – Update – Delete • REST va más alla porque soporta muchas representaciones para un mismo recurso: • XML, PDF, PNG, JSON, HTML, TEXTO… • Cada recurso tiene un estado interno que no puede ser accedido directamente desde el exterior • Una representación es el formato de datos utilizado para la transferencia del estado público de un recurso. • Diferentes formatos de representación pueden proporcionar diferentes datos de un recurso.
  • 6. Uniform Interface I • Define la interfaz entre cliente y servidor • Simplifica y separa la arquitectura • Es fundamental para el diseño RESTful • Significa: • HTTP verbs (GET, PUT, POST, DELETE) • URIs (nombres de recursos) • HTTP response (status, body)
  • 7. Uniform Interface II • Basado en recursos • La manipulación de los recursos a través de representaciones • Mensajes auto-descriptivos • Hypermedia as the Engine of Application State (HATEOAS)
  • 8. STATELESS • El servidor no contiene estados de cliente • Cada request contiene suficiente información para procesar el mensaje • Mensajes autp-descriptivos • Cualquier estado de sesión es ayudar en el cliente
  • 9. Client-Server • Suponemos que es un sistema desconectado • Separación de problemas • Una interfaz uniforme es la conexión entre ambos lados
  • 10. CACHE • Las respuestas del servidor (representaciones) se pueden cachear • Implicitly • Explicitly • Negociated
  • 11. LAYERED SYSTEM • El cliente no puede asumir una conexión directa con el servidor • Software o hardware intermediarios entre el cliente y el servidor • Mejora la escalabilidad
  • 12. CODE ON DEMAND • Servidor puede extender temporalmente cliente • Transferir la lógica al cliente • El cliente calcula • Por ejemplo: • Java applets • JavaScript • La única restricción opcional
  • 13. REST vs RPC • REST: Proporciona al cliente una interfaz sencilla de acceso a los recursos, 4 acciones posibles. • RPC: Proporciona gran cantidad de acciones (metodos) a ejecutar sobre los recursos.
  • 14. Ejemplo REST vs RPC • Cómo obtener la lista de ciudades de España: • RPC: listcities(Spain) • REST: GET a la URL http://www.example.org/service?country=Spain • Generación dinámica de representaciones • URIs Opacas vs URIs Constructivas
  • 15. REST vs SOAP • SOAP también está orientado a objetos pero no existe un conjunto de operaciones estándar. • Cada sistema SOAP requiere de un cliente que implemente el conjunto de operaciones que soporta.
  • 16. CONCLUSIONES • Para que un servicio sea RESTFul debe cumplir todas las limitaciones • Cumplir con REST nos permite obtener servicios distribuidos • Escalables • Simples • Robustos
  • 17. Jersey • Una manera de aplicar REST en Java.
  • 18. Jersey • Facilita la manera de obtener los objetos. • Se puede combinar con JSON para enviarlos • Ejemplo • REST puede ser una manera útil y clara para pasar objetos a otros dispositivos (android, clientes de consola, etc);