Avances tecnológicos del siglo XXI y ejemplos de estos
Desarrolla tu primera api con spring boot
1. 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:
3. ❏ Introducción a Spring Boot.
❏ Introducción a Spring Data Rest y HATEOAS.
❏ Demo.
❏ Introducción a Spring MVC.
❏ Demo.
Índice
4. ● 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
5. 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?
6. ¿Qué más?:
● Incluye:
○ Spring Test.
○ JUnit.
○ Hamcrest.
○ Mockito.
● Tests de integración.
Introducción a Spring Boot
7. ● Java SDK 1.6 o superior.
● Maven.
● Gradle.
● Spring Boot CLI.
Instalación:
Introducción a Spring Boot
8. ● Java SDK 1.6 o superior.
● Maven.
● Gradle.
● Spring Boot CLI.
Instalación:
Introducción a Spring Boot
10. ● 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
CrudRepository
PagingAndSorting
Repository
SPRING MVC
11. Introducción a Spring Data Rest y HATEOAS
● Transformación de los métodos del repositorio:
○ save() POST, PUT.
○ findOne(), findAll()... GET.
○ delete() DELETE
12. ● 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.
13. ● 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
14. ● 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
17. ● 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?:
18. ● 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:
19. 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:
21. ➢ 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