PDF de programación - Tema 3.5: Servicios REST con Spring

<<>>
Imágen de pdf Tema 3.5: Servicios REST con Spring

Tema 3.5: Servicios REST con Springgráfica de visualizaciones

Publicado el 8 de Junio del 2019
567 visualizaciones desde el 8 de Junio del 2019
1,4 MB
38 paginas
DISEÑO DE APLICACIONES WEB
Bloque3: Parte servidora

(backend)

TEMA 3.5: SERVICIOS REST CON SPRING

Jesús Montes

jmontes@fi.upm.es

SERVICIOS REST CON SPRING
Disclaimer

• Este material está basado en un material
original de:
§  Boni García ([email protected])

2

SERVICIOS REST CON SPRING
Índice de contenidos
1.  Introducción
2.  Servicios REST
3.  Clientes de servicios REST

3

SERVICIOS REST CON SPRING
Índice de contenidos
1.  Introducción
§  Servicios web
§  JSON

2.  Servicios REST
3.  Clientes de servicios REST

4

SERVICIOS REST CON SPRING
1. Introducción


Servicios web
•  Un servicio distribuido consiste en varios procesos que se ejecutan
en diferentes equipos terminales y que se comunican a través de una
red de datos (típicamente Internet).

•  Los servicios web son un tipo de servicios distribuido accedido por

HTTP y en el que los clientes puede ser heterogéneos.
§  Podemos ver un servicio web como una aplicación web en la que hay un

cliente que hace peticiones y un servidor que las atiende.

§  Se utiliza el protocolo HTTP para la interacción entre el cliente y el

servidor.

§  Cuando se hace una petición, no se espera obtener una página web en

formato HTML, en vez de eso, se espera obtener datos estructurados (en
formato XML o JSON) para que sea procesada por el cliente.

5

SERVICIOS REST CON SPRING
1. Introducción


Servicios web
•  Algunos de ejemplos de clientes de servicios web:

§  Páginas web con AJAX o SPA (Single Page Application).
§  Otro tipo de clientes: Aplicación móviles, TVs, consolas,...
§  Servidores de otras aplicaciones web.

un servicio web proporcionado por Facebook.

•  Por ejemplo, la aplicación de Facebook para Android es un cliente de
•  Una de las mayores ventajas de los servicios web es la transparencia
del lenguaje, tanto el cliente como el servidor pueden estar escritos
en cualquier lenguaje de programación (no tienen que utilizar el
mismo lenguaje).

•  Hay dos tipos principales de servicios web: SOAP y REST.

6

SERVICIOS REST CON SPRING
1. Introducción


Servicios web
•  REST (REpresentational State Transfer) es un tipo de servicio web que hace

uso del protocolo HTTP para realizar operaciones CRUD en recursos
remotos.
§  Se usan los métodos (verbos) GET, POST, PUT, DELETE de HTTP 1.1 (RFC 2616) para

definir las operaciones.

§  Hay una extensión a HTTP 1.1 (RFC 5789) que define un nuevo método: PATCH

(modificación parcial de un recurso).

§  Se usan los códigos de repuesta HTTP (200 OK, 500 Internal Server Error, …) como

resultado de las operaciones.

•  El término se acuñó en el año 2000, en la tesis doctoral escrita por Roy

Fielding, uno de los autores de la especificación del protocolo HTTP.
§  A los servicios web que siguen la arquitectura REST se les suele conocer como RESTful.
§  Si no se usa la arquitectura REST de forma estricta (por ejemplo, sólo usando GET y POST

para todas las operaciones) se dice que el servicio es REST-like.

7

SERVICIOS REST CON SPRING
1. Introducción


almacenar o enviar información estructurada.

JSON
•  JSON (JavaScript Object Notation), es un formato ligero para
•  No es realmente un estándar como tal, pero está basado en el
•  Se utiliza para la codificación de la información en la mayoría de los

estándar de JavaScript (ECMAScript).

servicios REST(aunque también se puede usar XML).

•  JSON se está haciendo cada vez más popular (cada vez se emplea

más en lugares donde antes se empleaba XML):
§  Ficheros de configuración, información estructurada, etc…

http://www.json.org/

8

SERVICIOS REST CON SPRING
1. Introducción


JSON
•  Ejemplo de información estructurada con JSON:

{
"menu": {
"id": "file",
"value": "File",
"popup": {
"menuitem": [
{
"value": "New",
"onclick": "CreateNewDoc()"
},
{
"value": "Open",
"onclick": "OpenDoc()"
},
{
"value": "Close",
"onclick": "CloseDoc()"
}
]
}
}
}

9

SERVICIOS REST CON SPRING
1. Introducción


JSON
•  Existen multitud de bibliotecas en cualquier lenguaje para procesar
•  Las principales bibliotecas de JSON para Java son:
•  Jackson:

JSON.

§  http://jackson.codehaus.org/
§  Es la biblioteca por defecto en Spring para JSON.

•  GSon:

§  https://code.google.com/p/google-gson/
§  Biblioteca de JSON de Google. Es más ligera que Jackson.

10

SERVICIOS REST CON SPRING
Índice de contenidos
1.  Introducción
2.  Servicios REST

§  Diseño de un servicio REST
§  Implementación de un servicio REST

3.  Clientes de servicios REST

11

SERVICIOS REST CON SPRING
2. Servicios REST


Diseño de un servicio REST
•  El esquema habitual que define el funcionamiento de los
servicios REST es el siguiente:
1.  La identificación de recursos se realizan mediante URLs.
2.  Las operaciones se realizan mediante métodos HTTP.
3.  La información se devuelve codificada el cuerpo de la respuesta.
4.  Los códigos de respuesta HTTP notifican el resultado de la

operación.

12

SERVICIOS REST CON SPRING
2. Servicios REST


Diseño de un servicio REST
URI vs URL vs URN
-  URI = Uniform Resource Identifier
-  URL = Uniform Resource Locator
-  URN = Uniform Resource Name
-  Las URIs son cadenas que sirven para identificar un recurso
-  Las URLs son cadenas que sirven para localizar un recurso
-  Las URNs son cadenas que sirven para nombrar un recurso
-  Todas las URLs son URIs pero no siempre ocurre a la inversa

URIs

URLs

URNs

-  Ejemplos URLs:

-  Ejemplos URNs:

-  http://www.ietf.org/rfc/rfc2396.txt
-  mailto:[email protected]
-  urn:ietf:rfc:2648
-  urn:issn:0167-6423

http://www.w3.org/TR/uri-clarification/

13

SERVICIOS REST CON SPRING
2. Servicios REST


Diseño de un servicio REST
1.  La identificación de recursos se realizan mediante URLs:
•  Una parte de la URL es fija y otra parte apunta al recurso
concreto.
•  Ejemplos:

§  http://server.tld/users/bob
§  http://server.tld/users/bob/anuncio/comparto-piso
§  http://server.tld/users/bob/anuncio/44

14

SERVICIOS REST CON SPRING
2. Servicios REST


Diseño de un servicio REST
2.  Las operaciones se realizan mediante métodos HTTP:
•  GET: Devuelve el recurso, generalmente codificado en JSON. No
envían información en el cuerpo de la petición.
•  DELETE: Borra el recurso. No envían información en el cuerpo de la
petición.
•  POST y PUT: Añade/modifica un recurso. Envía el recurso en el
cuerpo de la petición.
§  La diferencia entre una y otra está que PUT debería ser una operación

idempotente (aunque se llame varias veces tiene el mismo efecto)
mientras que POST no lo será.
§  PATCH: Modificación parcial de un recurso.

15

SERVICIOS REST CON SPRING
2. Servicios REST


Diseño de un servicio REST
3. 
•  Petición:

La información se devuelve codificada el cuerpo de la respuesta

§  URL: http://server/bob/bookmarks/6
§  Método: GET

•  Respuesta:

§  mime-type: application/json
§  Body:

{
id: 6,
uri: "http://bookmark.com/2/bob",
description: "A description"
}

16

SERVICIOS REST CON SPRING
2. Servicios REST


Los códigos de respuesta HTTP notifican el resultado de la operación:

Diseño de un servicio REST
4. 
•  100-199: No están definidos.
•  200-299: La petición fue procesada correctamente.
•  300-399: El cliente debe hacer acciones adicionales para completar la
•  400-499: Se usa en casos en los que el cliente ha realizado la petición
•  500-599: Se usa cuando se produce un error procesando la petición.

petición, por ejemplo, una redirección a otra página.

incorrectamente (ejemplo típico: 404 No existe).

17

SERVICIOS REST CON SPRING
2. Servicios REST


Implementación de un servicio REST
•  Para implementar los servicios REST con Java se puede usar:
•  JAX-RS (Java API for RESTful Web Services)

§  Estándar Java EE.
§  https://jersey.java.net/

•  Spring MVC

§  Parte del Framework Spring.
§  Mismo sistema usado para generar páginas web.
§  Diferencias con Spring MVC para generar HTML:

–  Se usa la anotación @RestController (en lugar de @Controller)
–  Los métodos devuelven el valor que tiene que enviarse al cliente, en vez de

devolver el objeto ModelAndView

18

SERVICIOS REST CON SPRING
2. Servicios REST


Implementación de un servicio REST
•  Ejemplo de servicio REST con Spring MVC:
§  Gestiona una lista de equipos (clase Team).
§  Cada equipo tiene un nombre y una lista de jugadores (clase Player).
§  Permite obtener todos los equipos (con los jugadores).
§  Permite obtener un equipo concreto por su índice.

19

SERVICIOS REST CON SPRING
2. Servicios REST


Implementación de un servicio REST
•  Ejemplo de servicio REST con Spring MVC

<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.2.7.RELEASE</version>
</parent>

<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>

No necesitamos capa de presentación
(Thymeleaf), con lo que usamos la dependencia
de aplicaciones web de Spring Boot

20

SERVICIOS REST CON SPRING
2. Servicios REST


Implementación de un servicio REST
•  Ejemplo de servicio REST con Spring MVC

public class Player {

private String name;
private String nickname;

public Player() {
}

public Player(String name, String nickname) {
this.name = name;
this.nickname = nickname;
}

// Getters, setters

}

Modelo

public class Team {

private List<Player> players;
private String name;
  • Links de descarga
http://lwp-l.com/pdf16065

Comentarios de: Tema 3.5: Servicios REST con Spring (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