SlideShare una empresa de Scribd logo
1 de 16
Descargar para leer sin conexión
REST
Representational State Transfer
OpenWebinars
Curso de front-end (2014)
Sergio Rus
@sergiorus
REST no es una tecnología ni un protocolo. Es
simplemente un estilo de arquitectura de red. La
WWW (Web) que tenemos actualmente es un
ejemplo de arquitectura REST.
¿Qué es REST?
REST se suele asociar al protocolo HTTP, aunque
en realidad los principios enunciados en REST
son válidos para cualquier protocolo de
comunicación de red. A pesar de esto, REST es
un compendio de ideas reunidas por las mismas
personas que diseñaron HTTP 1.1. Por ello,
algunas de estas ideas ya las conocemos de este
protocolo.
¿Qué es REST?
Siguiendo los principios o restricciones
propuestos en REST es posible obtener una
arquitectura de red óptima en el sentido de que
maximiza propiedades como:
● Rendimiento
● Escalabilidad
● Simplicidad
● Portabilidad
● Fiabilidad
¿Qué es REST?
● Modelo cliente-servidor
● Protocolo de comunicación stateless
● Uso de caché
● Elementos de red organizados por capas
● Interfaz uniforme entre cliente y servidor
● Client-side scripting (opcional)
Principios de REST
http://slides.com/onema/http-protocol
HTTP request
HTTP request
HTTP request
HTTP response
HTTP response
Cliente-servidor
Stateless
El cliente es siempre el que comienza la
comunicación con el servidor. Además todas las
peticiones (requests) del cliente son independientes:
no se guardan datos (estado) entre una petición y
otra, es decir, el servidor debe tratar cada petición de
forma independiente. No existe el concepto “estado
de la sesión” en el servidor. El cliente es el único que
debe gestionar el estado de la sesión.
Uso de caché
Siempre que sea posible, las respuestas del servidor
deben ser cacheadas, tanto en el cliente como en los
elementos intermedios de red. Esto mejora el
rendimiento y la escalabilidad de la arquitectura de
red.
Por ejemplo, en HTTP es muy importante tratar de
usar siempre cabeceras para cachear las respuestas.
Organización por capas
Entre el cliente y el servidor puede existir un número
indeterminado de elementos de red (proxies, routers,
cachés, servidores, etc) que deben actuar de forma
transparente en la comunicación cliente-servidor,
ayudando además a mejorar el rendimiento, la
escalabilidad y la seguridad.
Interfaz uniforme
Es imprescindible que no exista acoplamiento entre
el cliente y el servidor. El cliente sólo debe conocer
la URI (URL o URN) del recurso al que accede en el
servidor. Esta URI identifica cada recurso de forma
unívoca y permanente. Además debe ocultar detalles
de implementación, como el tipo de representación
(XML, JSON, etc).
Interfaz uniforme
Un recurso es un concepto abstracto, luego no
necesariamente equivale directamente a datos
almacenados en el servidor.
El cliente manipula los recursos del servidor
mediante representaciones, que pueden ser en
cualquier formato (HTML, XML, JSON, JPG, PNG,
MP3, etc).
Interfaz uniforme
El cliente debe ser capaz de manipular los recursos
del servidor únicamente a partir de la información
contenida en las respuestas del servidor y en las
representaciones de recursos que devuelve éste.
La única información previa que podría conocer el
cliente es la URI de entrada al servidor, es decir, la
ruta principal (/). Cualquier otra URI para acceder a
un recurso debe poder ser descubierta a partir de
links.
RESTful
Si una aplicación o servicio web cumple todos estos
requisitos entonces se dice que es RESTful.
RESTful
Por ejemplo: no podemos hablar de que una API es
RESTful si las representaciones de recursos que
devuelve no contienen links, o bien, las URIs que
utilizan para identificar recursos no son unívocas.
RESTful
La mayoría de APIs que se autodenominan RESTful
en realidad no lo son. Ejemplo: Stripe.
Referencias
● Roy Thomas Fielding - artículo original sobre
REST
● Roy Thomas Fielding - artículo de opinión sobre
la palabra de moda: RESTful
● REST book - un resumen de buenas prácticas
● Cómo diseñar URLs RESTful
● Cómo versionar APIs según REST

Más contenido relacionado

La actualidad más candente (19)

Páginas dinámicas
Páginas dinámicasPáginas dinámicas
Páginas dinámicas
 
Cliente web y servidor web
Cliente web y servidor webCliente web y servidor web
Cliente web y servidor web
 
SERVICIOS_WEB
SERVICIOS_WEBSERVICIOS_WEB
SERVICIOS_WEB
 
Servicios web
Servicios webServicios web
Servicios web
 
Fundamentos de la web
Fundamentos de la webFundamentos de la web
Fundamentos de la web
 
Servlet
ServletServlet
Servlet
 
Protocolo syslog
Protocolo   syslogProtocolo   syslog
Protocolo syslog
 
Servidor web, plataforma para 24
Servidor web, plataforma para  24Servidor web, plataforma para  24
Servidor web, plataforma para 24
 
Entrada 10
Entrada 10Entrada 10
Entrada 10
 
Cliente web
Cliente web Cliente web
Cliente web
 
Servicios web
Servicios webServicios web
Servicios web
 
ACTIVIDAD 5
ACTIVIDAD 5ACTIVIDAD 5
ACTIVIDAD 5
 
Diapositiva servidor web
Diapositiva servidor webDiapositiva servidor web
Diapositiva servidor web
 
Presentación2.pptx
Presentación2.pptxPresentación2.pptx
Presentación2.pptx
 
Programación Web I - ISC - UCQ - Presentación 03
Programación Web I - ISC - UCQ - Presentación 03Programación Web I - ISC - UCQ - Presentación 03
Programación Web I - ISC - UCQ - Presentación 03
 
Arquitectura Rest
Arquitectura RestArquitectura Rest
Arquitectura Rest
 
Servidor web
Servidor webServidor web
Servidor web
 
Tmg exposición 18 06-13
Tmg exposición 18 06-13Tmg exposición 18 06-13
Tmg exposición 18 06-13
 
que es un socket
que es un socketque es un socket
que es un socket
 

Destacado

Servicios REST - PucelaTechDay
Servicios REST - PucelaTechDayServicios REST - PucelaTechDay
Servicios REST - PucelaTechDay
Asier Marqués
 

Destacado (12)

Promesas
PromesasPromesas
Promesas
 
Ajax
AjaxAjax
Ajax
 
Front end workflows
Front end workflowsFront end workflows
Front end workflows
 
Introducción a las API's Rest
Introducción a las API's RestIntroducción a las API's Rest
Introducción a las API's Rest
 
API Centric
API CentricAPI Centric
API Centric
 
Servicios REST - PucelaTechDay
Servicios REST - PucelaTechDayServicios REST - PucelaTechDay
Servicios REST - PucelaTechDay
 
Rest schema design
Rest schema designRest schema design
Rest schema design
 
Interoperabilidad en android con APIs REST/JSON
Interoperabilidad en android con APIs REST/JSONInteroperabilidad en android con APIs REST/JSON
Interoperabilidad en android con APIs REST/JSON
 
APIs REST #devfestBilbao
APIs REST #devfestBilbaoAPIs REST #devfestBilbao
APIs REST #devfestBilbao
 
Cancer De Prostata
Cancer De ProstataCancer De Prostata
Cancer De Prostata
 
Representational State Transfer
Representational State TransferRepresentational State Transfer
Representational State Transfer
 
Documentando con Maven
Documentando con MavenDocumentando con Maven
Documentando con Maven
 

Similar a Rest clase 4 - curso front-end 2014 - open webinars

Presentación sobre el protocolo RESTAPI.
Presentación sobre el protocolo RESTAPI.Presentación sobre el protocolo RESTAPI.
Presentación sobre el protocolo RESTAPI.
JosdeJessQuintanaDaz
 

Similar a Rest clase 4 - curso front-end 2014 - open webinars (20)

REST
RESTREST
REST
 
RES - Transferencia de Estado Representacional
RES - Transferencia de Estado RepresentacionalRES - Transferencia de Estado Representacional
RES - Transferencia de Estado Representacional
 
Arquitectura-orientada-a-Servicios.-v-2017.01-Prof.-L.-Straccia.pptx
Arquitectura-orientada-a-Servicios.-v-2017.01-Prof.-L.-Straccia.pptxArquitectura-orientada-a-Servicios.-v-2017.01-Prof.-L.-Straccia.pptx
Arquitectura-orientada-a-Servicios.-v-2017.01-Prof.-L.-Straccia.pptx
 
T final modulo_1
T final modulo_1T final modulo_1
T final modulo_1
 
Paper ieee
Paper ieeePaper ieee
Paper ieee
 
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
 
S7-DAW-2022S1.pptx
S7-DAW-2022S1.pptxS7-DAW-2022S1.pptx
S7-DAW-2022S1.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
 
Presentación sobre el protocolo RESTAPI.
Presentación sobre el protocolo RESTAPI.Presentación sobre el protocolo RESTAPI.
Presentación sobre el protocolo RESTAPI.
 
Scom5 Ws Ii
Scom5 Ws IiScom5 Ws Ii
Scom5 Ws Ii
 
Rest vswebservices
Rest vswebservicesRest vswebservices
Rest vswebservices
 
S4-PD2-2.2. REST
S4-PD2-2.2. RESTS4-PD2-2.2. REST
S4-PD2-2.2. REST
 
Presentacion ws
Presentacion wsPresentacion ws
Presentacion ws
 
Tema 3 0
Tema 3 0Tema 3 0
Tema 3 0
 
Tema 3 0
Tema 3 0Tema 3 0
Tema 3 0
 
Rest vswebservices
Rest vswebservicesRest vswebservices
Rest vswebservices
 
Api rest ful
Api rest fulApi rest ful
Api rest ful
 
Servicios web
Servicios webServicios web
Servicios web
 
Web Services
Web ServicesWeb Services
Web Services
 
Web Services
Web ServicesWeb Services
Web Services
 

Último

Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Fernando Solis
 
6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria
Wilian24
 
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
jlorentemartos
 

Último (20)

Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
 
Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024
 
Factores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdfFactores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdf
 
Biografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdfBiografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdf
 
Louis Jean François Lagrenée. Erotismo y sensualidad. El erotismo en la Hist...
Louis Jean François Lagrenée.  Erotismo y sensualidad. El erotismo en la Hist...Louis Jean François Lagrenée.  Erotismo y sensualidad. El erotismo en la Hist...
Louis Jean François Lagrenée. Erotismo y sensualidad. El erotismo en la Hist...
 
PP_Comunicacion en Salud: Objetivación de signos y síntomas
PP_Comunicacion en Salud: Objetivación de signos y síntomasPP_Comunicacion en Salud: Objetivación de signos y síntomas
PP_Comunicacion en Salud: Objetivación de signos y síntomas
 
Revista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdfRevista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdf
 
La Sostenibilidad Corporativa. Administración Ambiental
La Sostenibilidad Corporativa. Administración AmbientalLa Sostenibilidad Corporativa. Administración Ambiental
La Sostenibilidad Corporativa. Administración Ambiental
 
activ4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdfactiv4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdf
 
6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria
 
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
 
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
 
Novena de Pentecostés con textos de san Juan Eudes
Novena de Pentecostés con textos de san Juan EudesNovena de Pentecostés con textos de san Juan Eudes
Novena de Pentecostés con textos de san Juan Eudes
 
TRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPC
TRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPCTRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPC
TRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPC
 
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptxLA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
 
Posición astronómica y geográfica de Europa.pptx
Posición astronómica y geográfica de Europa.pptxPosición astronómica y geográfica de Europa.pptx
Posición astronómica y geográfica de Europa.pptx
 
Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024
 
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).pptPINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
 
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
 
Actividades para el 11 de Mayo día del himno.docx
Actividades para el 11 de Mayo día del himno.docxActividades para el 11 de Mayo día del himno.docx
Actividades para el 11 de Mayo día del himno.docx
 

Rest clase 4 - curso front-end 2014 - open webinars

  • 1. REST Representational State Transfer OpenWebinars Curso de front-end (2014) Sergio Rus @sergiorus
  • 2. REST no es una tecnología ni un protocolo. Es simplemente un estilo de arquitectura de red. La WWW (Web) que tenemos actualmente es un ejemplo de arquitectura REST. ¿Qué es REST?
  • 3. REST se suele asociar al protocolo HTTP, aunque en realidad los principios enunciados en REST son válidos para cualquier protocolo de comunicación de red. A pesar de esto, REST es un compendio de ideas reunidas por las mismas personas que diseñaron HTTP 1.1. Por ello, algunas de estas ideas ya las conocemos de este protocolo. ¿Qué es REST?
  • 4. Siguiendo los principios o restricciones propuestos en REST es posible obtener una arquitectura de red óptima en el sentido de que maximiza propiedades como: ● Rendimiento ● Escalabilidad ● Simplicidad ● Portabilidad ● Fiabilidad ¿Qué es REST?
  • 5. ● Modelo cliente-servidor ● Protocolo de comunicación stateless ● Uso de caché ● Elementos de red organizados por capas ● Interfaz uniforme entre cliente y servidor ● Client-side scripting (opcional) Principios de REST
  • 6. http://slides.com/onema/http-protocol HTTP request HTTP request HTTP request HTTP response HTTP response Cliente-servidor
  • 7. Stateless El cliente es siempre el que comienza la comunicación con el servidor. Además todas las peticiones (requests) del cliente son independientes: no se guardan datos (estado) entre una petición y otra, es decir, el servidor debe tratar cada petición de forma independiente. No existe el concepto “estado de la sesión” en el servidor. El cliente es el único que debe gestionar el estado de la sesión.
  • 8. Uso de caché Siempre que sea posible, las respuestas del servidor deben ser cacheadas, tanto en el cliente como en los elementos intermedios de red. Esto mejora el rendimiento y la escalabilidad de la arquitectura de red. Por ejemplo, en HTTP es muy importante tratar de usar siempre cabeceras para cachear las respuestas.
  • 9. Organización por capas Entre el cliente y el servidor puede existir un número indeterminado de elementos de red (proxies, routers, cachés, servidores, etc) que deben actuar de forma transparente en la comunicación cliente-servidor, ayudando además a mejorar el rendimiento, la escalabilidad y la seguridad.
  • 10. Interfaz uniforme Es imprescindible que no exista acoplamiento entre el cliente y el servidor. El cliente sólo debe conocer la URI (URL o URN) del recurso al que accede en el servidor. Esta URI identifica cada recurso de forma unívoca y permanente. Además debe ocultar detalles de implementación, como el tipo de representación (XML, JSON, etc).
  • 11. Interfaz uniforme Un recurso es un concepto abstracto, luego no necesariamente equivale directamente a datos almacenados en el servidor. El cliente manipula los recursos del servidor mediante representaciones, que pueden ser en cualquier formato (HTML, XML, JSON, JPG, PNG, MP3, etc).
  • 12. Interfaz uniforme El cliente debe ser capaz de manipular los recursos del servidor únicamente a partir de la información contenida en las respuestas del servidor y en las representaciones de recursos que devuelve éste. La única información previa que podría conocer el cliente es la URI de entrada al servidor, es decir, la ruta principal (/). Cualquier otra URI para acceder a un recurso debe poder ser descubierta a partir de links.
  • 13. RESTful Si una aplicación o servicio web cumple todos estos requisitos entonces se dice que es RESTful.
  • 14. RESTful Por ejemplo: no podemos hablar de que una API es RESTful si las representaciones de recursos que devuelve no contienen links, o bien, las URIs que utilizan para identificar recursos no son unívocas.
  • 15. RESTful La mayoría de APIs que se autodenominan RESTful en realidad no lo son. Ejemplo: Stripe.
  • 16. Referencias ● Roy Thomas Fielding - artículo original sobre REST ● Roy Thomas Fielding - artículo de opinión sobre la palabra de moda: RESTful ● REST book - un resumen de buenas prácticas ● Cómo diseñar URLs RESTful ● Cómo versionar APIs según REST