desarrolla tu primera api con spring boot

24
Rafael Goterris Perales CTO de CloudAppi Desarrolla tu primera Api con Spring Boot 16.000 visualizacion es 1000 api addicts Madrid / Valencia Barcelona 24 meetups 9K 3K 2K Síguenos en @apiaddicts Patrocinador:

Upload: leadgods

Post on 20-Feb-2017

409 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Desarrolla tu primera api con spring boot

Rafael Goterris PeralesCTO de CloudAppi

Desarrolla tu primera Api con Spring Boot

16.000 visualizacion

es

1000api addicts

Madrid / ValenciaBarcelona

24meetups

9K3K

2K

Síguenos en @apiaddicts Patrocinador:

Page 2: Desarrolla tu primera api con spring boot

SíguenosPatrocinador Gold

DirecciónCalle Velasco 13Getafe, Madrid

Teléfono+34 91 764 79 82 658 89 75 75

Email [email protected]

web www.cloudappi.net

Linkedin CloudAppi

Twitter @CloudAppi

Facebook CloudAppi

Meetup ApiAddicts

Page 3: Desarrolla tu primera api con spring boot

❏ Introducción a Spring Boot.

❏ Introducción a Spring Data Rest y HATEOAS.

❏ Demo.

❏ Introducción a Spring MVC.

❏ Demo.

Índice

Page 4: Desarrolla tu primera api con spring boot

● Creación rápida de aplicaciones Spring.

● Convención sobre configuración (CoC).

● Aplicación autónoma (stand alone).

¿Qué nos ofrece?:

Introducción a Spring Boot

Page 5: Desarrolla tu primera api con spring boot

Introducción a Spring Boot

● Características no funcionales. ○ Servidores embebidos.○ Métricas.○ Comprobación del estado de la aplicación.○ Externalización de la configuración.○ ...

● No genera código.

● Configuración sin XML y externalizada.

● Soporta Java, Groovy y Kotlin.

¿Qué más?

Page 6: Desarrolla tu primera api con spring boot

¿Qué más?:

● Incluye:

○ Spring Test.

○ JUnit.

○ Hamcrest.

○ Mockito.

● Tests de integración.

Introducción a Spring Boot

Page 7: Desarrolla tu primera api con spring boot

● Java SDK 1.6 o superior.

● Maven.

● Gradle.

● Spring Boot CLI.

Instalación:

Introducción a Spring Boot

Page 8: Desarrolla tu primera api con spring boot

● Java SDK 1.6 o superior.

● Maven.

● Gradle.

● Spring Boot CLI.

Instalación:

Introducción a Spring Boot

Page 9: Desarrolla tu primera api con spring boot

Asistente: http://start.spring.io

Introducción a Spring Boot

Page 10: Desarrolla tu primera api con spring boot

● Publica métodos de nuestra capa de persistencia como recursos REST.

¿Qué hace?:

Introducción a Spring Data Rest y HATEOAS

SPRING DATA

SPRING DATA REST

SQL NoSQL

CrudRepositoryPagingAndSorting

Repository

SPRING MVC

Page 11: Desarrolla tu primera api con spring boot

Introducción a Spring Data Rest y HATEOAS

● Transformación de los métodos del repositorio:

○ save() POST, PUT.

○ findOne(), findAll()... GET.

○ delete() DELETE

Page 12: Desarrolla tu primera api con spring boot

● Están basados en el principio HATEOAS.

○ Hypermedia as the Engine of Application State

Los recursos que publica:

Introducción a Spring Data Rest y HATEOAS

A partir de un punto de entrada es posible acceder a todos los recursos de nuestra API sin necesidad de ninguna documentación.

Page 13: Desarrolla tu primera api con spring boot

● Utilizando Hypermedia para descubrir los recursos de nuestra API.

○ Nuestra API es RESTFul según el modelo Richardson Maturity Model

¿Cómo?:

Introducción a Spring Data Rest y HATEOAS

Page 14: Desarrolla tu primera api con spring boot

● Pero HATEOAS es sólo un principio.

● Spring Data Rest emplea HAL (Hypertext Application

Language):

○ Es una convención.

○ Define el formato de los datos de entrada / salida.

■ Content Type / Accept: application/hal+json

○ Define la forma de mostrar las relaciones de los recursos

mediante vínculos o links.

○ http://stateless.co/hal_specification.html

Introducción a Spring Data Rest y HATEOAS

Page 15: Desarrolla tu primera api con spring boot

DEMO

Page 16: Desarrolla tu primera api con spring boot

Web

Persistencia

Base de datos

● Spring Data Rest

● Dominio (@Entity)● Spring Data JPA (@Repository)

● H2

Demo

Page 17: Desarrolla tu primera api con spring boot

● Framework que implementa el patrón Front

Controller.

Introducción a Spring MVC

http://docs.spring.io/spring/docs/current/spring-framework-reference/html/mvc.html

¿Qué es?:

Page 18: Desarrolla tu primera api con spring boot

● Todas las peticiones pasan a través del Front Controller (es un Servlet).

1. El Front Controller delega la petición a una clase Controller donde se ejecuta la lógica de negocio.

2. El Controller devuelve un objeto Model con el nombre de la vista y los datos obtenidos.

3. El Front Controller delega en un ViewResolver para averiguar la vista.

4. El Front Controller utiliza la vista para mostrar el modelo al usuario.

Introducción a Spring MVC

Procesado de una petición:

Page 19: Desarrolla tu primera api con spring boot

1. El Front Controller delega la petición a una clase Controller donde se

ejecuta la lógica de negocio.

2. El Controller devuelve un objeto con los datos obtenidos.

3. Por defecto los objetos se convierten a JSON.

4. Se devuelven directamente sin pasar por la vista.

Introducción a Spring MVC

Con peticiones REST:

Page 20: Desarrolla tu primera api con spring boot

DEMO

Page 21: Desarrolla tu primera api con spring boot

➢ Spring Boot: http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/

➢ Spring Data Rest: http://docs.spring.io/spring-data/rest/docs/current/reference/html/

➢ HATEOAS: https://en.wikipedia.org/wiki/HATEOAS

➢ HAL: http://stateless.co/hal_specification.html

➢ Spring MVC:

http://docs.spring.io/spring/docs/current/spring-framework-reference/html/mvc.html

➢ Spring Data JPA:

http://docs.spring.io/spring/docs/current/spring-framework-reference/html/mvc.html

➢ Richard Madurity Model: http://martinfowler.com/articles/richardsonMaturityModel.html

Enlaces de interés

Page 22: Desarrolla tu primera api con spring boot

Ruegos y preguntas

Page 23: Desarrolla tu primera api con spring boot