PDF de programación - Introducción a los Servicios Web RESTful

Imágen de pdf Introducción a los Servicios Web RESTful

Introducción a los Servicios Web RESTfulgráfica de visualizaciones

Publicado el 8 de Marzo del 2021
800 visualizaciones desde el 8 de Marzo del 2021
363,0 KB
38 paginas
Creado hace 11a (01/01/2013)
Introducción a los Servicios Web
RESTful

Índice

1 Fundamentos de REST.................................................................................................2
1.1 Recursos...................................................................................................................3
1.2 Representación.........................................................................................................3
1.3 URI...........................................................................................................................4
1.4 Uniformidad de las interfaces a través de peticiones HTTP....................................5
2 Tipos de peticiones HTTP............................................................................................7
2.1 GET/RETRIEVE..................................................................................................... 7
2.2 POST/CREATE..................................................................................................... 10
2.3 PUT/UPDATE....................................................................................................... 10
2.4 DELETE/DELETE................................................................................................ 12
3 Clientes de servicios REST........................................................................................ 12
3.1 Invocación de servicios RESTful desde una clase Java.........................................13
3.2 Invocación de servicios RESTful desde una aplicación Java de escritorio........... 16
3.3 Invocación de servicios RESTful desde una aplicación JSP................................. 18
3.4 Parsing de estructuras JSON..................................................................................20
4 Creación de servicios REST con Jersey..................................................................... 22
4.1 JAX-RS y Jersey.................................................................................................... 22
4.2 Anotaciones Jersey.................................................................................................22
4.3 Implementación de aplicaciones JAX-RS............................................................. 24
4.4 Tipos de datos en la petición y en la respuesta...................................................... 29

Copyright © 2012-2013 Dept. Ciencia de la Computación e IA All rights reserved.

Introducción a los Servicios Web RESTful

El estilo REST (Representational State Transfer) es una forma ligera de crear Servicios
Web. El elemento principal en el que se basan estos servicios son las URLs. En líneas
generales podemos decir que estos servicios consisten en URLs a las que podemos
acceder, por ejemplo mediante protocolo HTTP, para obtener información o realizar
alguna operación. El formato de la información que se intercambie con estas URLs lo
decidirá el desarrollador del servicio. Este tipo de servicios acercan los Servicios Web al
tipo de arquitectura de la web, siendo especialmente interesantes para su utilización en
AJAX.

1. Fundamentos de REST

El término REST proviene de la tesis doctoral de Roy Fielding, publicada en el año 2000,
y significa REpresentational State Transfer. REST es un conjunto de restricciones que,
cuando son aplicadas al diseño de un sistema, crean un estilo arquitectónico de software.
Dicho estilo arquitectónico se caracteriza por:
• Debe ser un sistema cliente-servidor
• Tiene que ser sin estado, es decir, no hay necesidad de que los servicios guarden las
sesiones de los usuarios (cada petición al servicio tiene que ser independiente de las
demás)

• Debe soportar un sistema de cachés: la infraestructura de la red debería soportar

caché en diferentes niveles

• Debe ser un sistema uniformemente accesible (con una interfaz uniforme): cada

recurso debe tener una única dirección y un punto válido de acceso. Los recursos se
identifican con URIs, lo cual proporciona un espacio de direccionamiento global para
el descubrimiento del servicio y de los recursos.

• Tiene que ser un sistema por capas: por lo tanto debe soportar escalabilidad
• Debe utilizar mensajes auto-descriptivos: los recursos se desacoplan de su

representación de forma que puedan ser accedidos en una variedad de formatos, como
por ejemplo XML, HTML, texto plano, PDF, JPEG, JSON, etc.

Estas restricciones no dictan qué tipo de tecnología utilizar; solamente definen cómo se
transfieren los datos entre componentes y qué beneficios se obtienen siguiendo estas
restricciones. Por lo tanto, un sistema RESTful puede implementarse en cualquier
arquitectura de la red disponible. Y lo que es más importante, no es necesario "inventar"
nuevas tecnologías o protocolos de red: podemos utilizar las infraestructuras de red
existentes, tales como la Web, para crear arquitecturas RESTful.

Antes de que las restricciones REST fuesen formalizadas, ya disponíamos de un ejemplo
de un sistema RESTful: la Web (estática). Por ejemplo, la infraestructura de red existente
proporciona sistemas de caché, conexión sin estado, y enlaces únicos a los recursos, en
donde los recursos son todos los documentos disponibles en cada sitio web y las
representaciones de dichos recursos son conjuntos de ficheros "legibles" por navegadores
web (por ejemplo, ficheros HTML). Por lo tanto, la web estática es un sistema construido

Copyright © 2012-2013 Dept. Ciencia de la Computación e IA All rights reserved.

2

Introducción a los Servicios Web RESTful

sobre un estilo arquitectónico REST.

A continuación analizaremos las abstracciones que constituyen un sistema RESTful:
recursos, representaciones, URIs, y los tipos de peticiones HTTP que constituyen la
interfaz uniforme utilizada en las transferencias cliente/servidor

1.1. Recursos

Un recurso REST es cualquier cosa que sea direccionable a través de la Web. Por
direccionable nos refererimos a recursos que puedan ser accedidos y transferidos entre
clientes y servidores. Por lo tanto, un recurso es una correspondencia lógica y temporal
con un concepto en el dominio del problema para el cual estamos implementando una
solución.

Algunos ejemplos de recursos REST son:
• Una noticia de un periódico
• La temperatura de Alicante a las 4:00pm
• Un valor de IVA almacenado en una base de datos
• Una lista con el historial de las revisiones de código en un sistema CVS
• Un estudiante en alguna aula de alguna universidad
• El resultado de una búsqueda de un ítem particular en Google

Aun cuando el mapeado de un recurso es único, diferentes peticiones a un recurso pueden
devolver la misma representación binaria almacenada en el servidor. Por ejemplo,
consideremos un recurso en el contexto de un sistema de publicaciones. En este caso, una
petición de la "última revisión publicada" y la petición de "la revisión número 12" en
algún momento de tiempo pueden devolver la misma representación del recurso: cuando
la última revisión sea efectivamente la 12. Por lo tanto, cuando la última revisión
publicada se incremente a la versión 13, una petición a la última revisión devolverá la
versión 13, y una petición de la revisión 12, continuará devolviendo la versión 12. En
definitiva: cada uno de los recursos puede ser accedido directamente y de forma
independiente, pero diferentes peticiones podrían "apuntar" al mismo dato.

Debido a que estamos utilizando HTTP para comunicarnos, podemos transferir cualquier
tipo de información que pueda transportarse entre clientes y servidores. Por ejemplo, si
realizamos una petición de un fichero de texto de la CNN, nuestro navegador mostrará un
fichero de texto. Si solicitamos una película flash a YouTube, nuestro navegador recibirá
una película flash. En ambos casos,
los datos son transferidos sobre TCP/IP y el
navegador conoce cómo interpretar los streams binarios debido a la cabecera de respuesta
del protocolo HTTP Content-Type. Por lo tanto, en un sistema RESTful, la representación
de un recurso depende del
tipo deseado por el cliente (tipo MIME), el cual está
especificado en la petición del protocolo de comunicaciones.

1.2. Representación

3

Copyright © 2012-2013 Dept. Ciencia de la Computación e IA All rights reserved.

Introducción a los Servicios Web RESTful

La representación de los recursos es lo que se envía entre los servidores y clientes. Una
representación muestra el estado del dato real almacenado en algún dispositivo de
almacenamiento en el momento de la petición. En términos generales, es un stream
binario,
juntamente con los metadatos que describen cómo dicho stream debe ser
consumido por el cliente y/o servidor (los metadatos también puden contener información
extra sobre el recurso, como por ejemplo información de validación y encriptación, o
código extra para ser ejecutado dinámicamente).

A través del ciclo de vida de un servicio web, pueden haber varios clientes solicitando
recursos. Clientes diferentes son capaces de consumir diferentes representaciones del
mismo recurso. Por lo tanto, una representación puede tener varias formas, como por
ejemplo, una imagen, un texto, un fichero XML, o un fichero JSON, pero tienen que estar
disponibles en la misma URL.

Para respuestas generadas para humanos a través de un navegador, una representación
típica tiene la forma de página HTML. Para respuestas automáticas de otros servicios
web, la legibilidad no es importante y puede utilizarse una representación mucho más
eficiente como por ejemplo XML.

El lenguaje para el intercambio de información con el servicio queda a elección del
desarrollador. A continuación mostramos algunos formatos comunes que podemos
utilizar para intercambiar esta información:

Formato

Tipo MIME

Texto plano

HTML

XML

JSON

text/plain

text/html

application/xml

application/json

De especial interés es el formato JSON. Se trata de un lenguaje ligero de intercambio de
información, que puede utilizarse en lugar de XML (que resulta considerablemente más
pesado) para aplicaciones AJAX. De hecho, en Javascript pue
  • Links de descarga
http://lwp-l.com/pdf18970

Comentarios de: Introducción a los Servicios Web RESTful (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad