Rafael Goterris Perales
CTO de CloudAppi
Desarrolla tu primera Api
con Spring Boot
16.000
visualizaciones
1000
api addicts
Madrid / Valencia
Barcelona
24
meetups
9K
3K
2K
Síguenos en @apiaddicts
Patrocinador:
Síguenos
Patrocinador Gold
Dirección
Calle Velasco 13
Getafe, Madrid
Teléfono
+34 91 764 79 82
658 89 75 75
Email
info@cloudappi.net
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
CrudRepository
PagingAndSortingRepository
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).
El Front Controller delega la petición a una clase Controller donde se ejecuta la lógica de negocio.
El Controller devuelve un objeto Model con el nombre de la vista y los datos obtenidos.
El Front Controller delega en un ViewResolver para averiguar la vista.
El Front Controller utiliza la vista para mostrar el modelo al usuario.
Introducción a Spring MVC
Procesado de una petición:
El Front Controller delega la petición a una clase Controller donde se ejecuta la lógica de negocio.
El Controller devuelve un objeto con los datos obtenidos.
Por defecto los objetos se convierten a JSON.
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:
contacta@apiaddicts.org
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