Upload
leadgods
View
412
Download
0
Embed Size (px)
Citation preview
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:
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
❏ Introducción a Spring Boot.
❏ Introducción a Spring Data Rest y HATEOAS.
❏ Demo.
❏ Introducción a Spring MVC.
❏ Demo.
Índice
● 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
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?
¿Qué más?:
● Incluye:
○ Spring Test.
○ JUnit.
○ Hamcrest.
○ Mockito.
● Tests de integración.
Introducción a Spring Boot
● Java SDK 1.6 o superior.
● Maven.
● Gradle.
● Spring Boot CLI.
Instalación:
Introducción a Spring Boot
● Java SDK 1.6 o superior.
● Maven.
● Gradle.
● Spring Boot CLI.
Instalación:
Introducción a Spring Boot
Asistente: http://start.spring.io
Introducción a 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
Introducción a Spring Data Rest y HATEOAS
● Transformación de los métodos del repositorio:
○ save() POST, PUT.
○ findOne(), findAll()... GET.
○ delete() DELETE
● 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.
● 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
● 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
DEMO
Web
Persistencia
Base de datos
● Spring Data Rest
● Dominio (@Entity)● Spring Data JPA (@Repository)
● H2
Demo
● 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?:
● 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:
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:
DEMO
➢ 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
Ruegos y preguntas
Email:
Web:
➢ www.apiaddicts.org
➢ http://Apiaddicts.leadgods.com
Follow us:
Linkedin:
➢ https://www.linkedin.com/company/apiaddicts
Twitter: @apiaddicts
Facebook:
➢ https://www.facebook.com/pages/APIAddicts
Meetup:
➢ http://www.meetup.com/es-ES/ApiAddicts
Contact