SlideShare uma empresa Scribd logo
1 de 24
Baixar para ler offline
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:
SíguenosPatrocinador 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
PagingAndSorting
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:
➢ 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

Mais conteúdo relacionado

Mais procurados

El mundo cloud y las apis
El mundo cloud y las apisEl mundo cloud y las apis
El mundo cloud y las apisCloudAppi
 
Define y desarrolla tu primera api
Define y desarrolla tu primera apiDefine y desarrolla tu primera api
Define y desarrolla tu primera apiCloudAppi
 
Introduccion a Python para la web
Introduccion a Python para la webIntroduccion a Python para la web
Introduccion a Python para la webArsys
 
Taller Ajax en Asp EXPOASI
Taller Ajax en Asp EXPOASITaller Ajax en Asp EXPOASI
Taller Ajax en Asp EXPOASIJuanPolanco
 
Asp.Net Core 1.0 Deep Dive
Asp.Net Core 1.0 Deep DiveAsp.Net Core 1.0 Deep Dive
Asp.Net Core 1.0 Deep DiveEduard Tomàs
 
Iniciación al SEO - Curso Intensivo
Iniciación al SEO - Curso IntensivoIniciación al SEO - Curso Intensivo
Iniciación al SEO - Curso IntensivoClever Consulting
 
Novedades de ASP.NET MVC6
Novedades de ASP.NET MVC6Novedades de ASP.NET MVC6
Novedades de ASP.NET MVC6Eduard Tomàs
 
Desarrollo Web con ASP.NET MVC
Desarrollo Web con ASP.NET MVCDesarrollo Web con ASP.NET MVC
Desarrollo Web con ASP.NET MVCAngel Nuñez
 
Angular js Frontenders Valencia
Angular js Frontenders ValenciaAngular js Frontenders Valencia
Angular js Frontenders ValenciaJavier Ruiz
 
Introducción a Mate Flex Framework
Introducción a Mate Flex FrameworkIntroducción a Mate Flex Framework
Introducción a Mate Flex Frameworkivan alvarez frias
 
Introducción a los Frameworks PHP
Introducción a los Frameworks PHP  Introducción a los Frameworks PHP
Introducción a los Frameworks PHP Aprende PHP
 
Timerepublik
TimerepublikTimerepublik
Timerepublikbetabeers
 

Mais procurados (15)

El mundo cloud y las apis
El mundo cloud y las apisEl mundo cloud y las apis
El mundo cloud y las apis
 
Define y desarrolla tu primera api
Define y desarrolla tu primera apiDefine y desarrolla tu primera api
Define y desarrolla tu primera api
 
Introduccion a Python para la web
Introduccion a Python para la webIntroduccion a Python para la web
Introduccion a Python para la web
 
Taller Ajax en Asp EXPOASI
Taller Ajax en Asp EXPOASITaller Ajax en Asp EXPOASI
Taller Ajax en Asp EXPOASI
 
Azure API Management
Azure API ManagementAzure API Management
Azure API Management
 
Asp.Net Core 1.0 Deep Dive
Asp.Net Core 1.0 Deep DiveAsp.Net Core 1.0 Deep Dive
Asp.Net Core 1.0 Deep Dive
 
Iniciación al SEO - Curso Intensivo
Iniciación al SEO - Curso IntensivoIniciación al SEO - Curso Intensivo
Iniciación al SEO - Curso Intensivo
 
Novedades de ASP.NET MVC6
Novedades de ASP.NET MVC6Novedades de ASP.NET MVC6
Novedades de ASP.NET MVC6
 
Desarrollo Web con ASP.NET MVC
Desarrollo Web con ASP.NET MVCDesarrollo Web con ASP.NET MVC
Desarrollo Web con ASP.NET MVC
 
JS Patterns Applied to a Real World Example
JS Patterns Applied to a Real World ExampleJS Patterns Applied to a Real World Example
JS Patterns Applied to a Real World Example
 
Manual Ajax con jquery
Manual Ajax con jqueryManual Ajax con jquery
Manual Ajax con jquery
 
Angular js Frontenders Valencia
Angular js Frontenders ValenciaAngular js Frontenders Valencia
Angular js Frontenders Valencia
 
Introducción a Mate Flex Framework
Introducción a Mate Flex FrameworkIntroducción a Mate Flex Framework
Introducción a Mate Flex Framework
 
Introducción a los Frameworks PHP
Introducción a los Frameworks PHP  Introducción a los Frameworks PHP
Introducción a los Frameworks PHP
 
Timerepublik
TimerepublikTimerepublik
Timerepublik
 

Destaque

Presentación Spring Boot en Autentia
Presentación Spring Boot en AutentiaPresentación Spring Boot en Autentia
Presentación Spring Boot en AutentiaJorge Pacheco Mengual
 
Codemotion Madrid 2014 - Spring ha muerto... ¡larga vida a spring boot!
Codemotion Madrid 2014 - Spring ha muerto... ¡larga vida a spring boot!Codemotion Madrid 2014 - Spring ha muerto... ¡larga vida a spring boot!
Codemotion Madrid 2014 - Spring ha muerto... ¡larga vida a spring boot!Iván López Martín
 
Servicio y Consumo de Servicios REST en PHP
Servicio y Consumo de Servicios REST en PHPServicio y Consumo de Servicios REST en PHP
Servicio y Consumo de Servicios REST en PHPDavid J. Brenes
 
Rest api design by george reese
Rest api design by george reeseRest api design by george reese
Rest api design by george reesebuildacloud
 
Developing and deploying applications with Spring Boot and Docker (@oakjug)
Developing and deploying applications with Spring Boot and Docker (@oakjug)Developing and deploying applications with Spring Boot and Docker (@oakjug)
Developing and deploying applications with Spring Boot and Docker (@oakjug)Chris Richardson
 
MVC Seminar Presantation
MVC Seminar PresantationMVC Seminar Presantation
MVC Seminar PresantationAbhishek Yadav
 
MVC ppt presentation
MVC ppt presentationMVC ppt presentation
MVC ppt presentationBhavin Shah
 
Service discovery in a microservice architecture using consul
Service discovery in a microservice architecture using consulService discovery in a microservice architecture using consul
Service discovery in a microservice architecture using consulJos Dirksen
 
Microservice With Spring Boot and Spring Cloud
Microservice With Spring Boot and Spring CloudMicroservice With Spring Boot and Spring Cloud
Microservice With Spring Boot and Spring CloudEberhard Wolff
 

Destaque (16)

Creando APIs REST con Spring Boot
Creando APIs REST con Spring BootCreando APIs REST con Spring Boot
Creando APIs REST con Spring Boot
 
Presentación Spring Boot en Autentia
Presentación Spring Boot en AutentiaPresentación Spring Boot en Autentia
Presentación Spring Boot en Autentia
 
Spring Mvc Final
Spring Mvc FinalSpring Mvc Final
Spring Mvc Final
 
Java 1.8:Road to Functional Language
Java 1.8:Road to Functional LanguageJava 1.8:Road to Functional Language
Java 1.8:Road to Functional Language
 
Codemotion Madrid 2014 - Spring ha muerto... ¡larga vida a spring boot!
Codemotion Madrid 2014 - Spring ha muerto... ¡larga vida a spring boot!Codemotion Madrid 2014 - Spring ha muerto... ¡larga vida a spring boot!
Codemotion Madrid 2014 - Spring ha muerto... ¡larga vida a spring boot!
 
Servicio y Consumo de Servicios REST en PHP
Servicio y Consumo de Servicios REST en PHPServicio y Consumo de Servicios REST en PHP
Servicio y Consumo de Servicios REST en PHP
 
Spring boot et. al. para el impaciente
Spring boot et. al. para el impacienteSpring boot et. al. para el impaciente
Spring boot et. al. para el impaciente
 
Rest api design by george reese
Rest api design by george reeseRest api design by george reese
Rest api design by george reese
 
Developing and deploying applications with Spring Boot and Docker (@oakjug)
Developing and deploying applications with Spring Boot and Docker (@oakjug)Developing and deploying applications with Spring Boot and Docker (@oakjug)
Developing and deploying applications with Spring Boot and Docker (@oakjug)
 
MVC Seminar Presantation
MVC Seminar PresantationMVC Seminar Presantation
MVC Seminar Presantation
 
Why MVC?
Why MVC?Why MVC?
Why MVC?
 
MVC ppt presentation
MVC ppt presentationMVC ppt presentation
MVC ppt presentation
 
Service discovery in a microservice architecture using consul
Service discovery in a microservice architecture using consulService discovery in a microservice architecture using consul
Service discovery in a microservice architecture using consul
 
Microservice With Spring Boot and Spring Cloud
Microservice With Spring Boot and Spring CloudMicroservice With Spring Boot and Spring Cloud
Microservice With Spring Boot and Spring Cloud
 
Model View Controller (MVC)
Model View Controller (MVC)Model View Controller (MVC)
Model View Controller (MVC)
 
Mvc architecture
Mvc architectureMvc architecture
Mvc architecture
 

Semelhante a Desarrolla tu primera api con spring boot

Desarrollando un API con REST
Desarrollando un API con RESTDesarrollando un API con REST
Desarrollando un API con RESTAlex Puig
 
Evolution INTech - Acceso a bases de datos con Minimal APIs de .NET 6.pptx
Evolution INTech - Acceso a bases de datos con Minimal APIs de .NET 6.pptxEvolution INTech - Acceso a bases de datos con Minimal APIs de .NET 6.pptx
Evolution INTech - Acceso a bases de datos con Minimal APIs de .NET 6.pptxLuis775803
 
Introducción a Cake PHP Framework
Introducción a Cake PHP FrameworkIntroducción a Cake PHP Framework
Introducción a Cake PHP FrameworkJomicast
 
API REST conceptos (Rails-api)
API REST conceptos (Rails-api)API REST conceptos (Rails-api)
API REST conceptos (Rails-api)Daryl Moreno
 
API WEB SQL ITParral
API WEB SQL ITParralAPI WEB SQL ITParral
API WEB SQL ITParralFerny Cortez
 
WORKSHOP I: Introducción a API REST
WORKSHOP I: Introducción a API RESTWORKSHOP I: Introducción a API REST
WORKSHOP I: Introducción a API RESTBEEVA_es
 
AWDC para desarrolladores y data scientists
AWDC para desarrolladores y data scientists AWDC para desarrolladores y data scientists
AWDC para desarrolladores y data scientists Edelweiss Kammermann
 
Integración de Tecnologías y Plataformas.pptx
Integración de Tecnologías y Plataformas.pptxIntegración de Tecnologías y Plataformas.pptx
Integración de Tecnologías y Plataformas.pptxLuisTenorio42
 
Mejorando interfaz de SharePoint 2010 con Silverlight 4
Mejorando interfaz de SharePoint 2010 con Silverlight 4Mejorando interfaz de SharePoint 2010 con Silverlight 4
Mejorando interfaz de SharePoint 2010 con Silverlight 4SolidQ
 

Semelhante a Desarrolla tu primera api con spring boot (20)

Desarrollando un API con REST
Desarrollando un API con RESTDesarrollando un API con REST
Desarrollando un API con REST
 
Charla REST API
Charla REST APICharla REST API
Charla REST API
 
ASP.NET 5 & MVC 6 (RC1)
ASP.NET 5 & MVC 6 (RC1)ASP.NET 5 & MVC 6 (RC1)
ASP.NET 5 & MVC 6 (RC1)
 
Evolution INTech - Acceso a bases de datos con Minimal APIs de .NET 6.pptx
Evolution INTech - Acceso a bases de datos con Minimal APIs de .NET 6.pptxEvolution INTech - Acceso a bases de datos con Minimal APIs de .NET 6.pptx
Evolution INTech - Acceso a bases de datos con Minimal APIs de .NET 6.pptx
 
Introducción a Cake PHP Framework
Introducción a Cake PHP FrameworkIntroducción a Cake PHP Framework
Introducción a Cake PHP Framework
 
5-Unidad 2: Diseño de Vista-2.2 Para Web
5-Unidad 2: Diseño de Vista-2.2 Para Web5-Unidad 2: Diseño de Vista-2.2 Para Web
5-Unidad 2: Diseño de Vista-2.2 Para Web
 
API REST conceptos (Rails-api)
API REST conceptos (Rails-api)API REST conceptos (Rails-api)
API REST conceptos (Rails-api)
 
Servicios web
Servicios webServicios web
Servicios web
 
Semana 7 Servicios Web REST con MongoDB final
Semana 7   Servicios Web REST con MongoDB finalSemana 7   Servicios Web REST con MongoDB final
Semana 7 Servicios Web REST con MongoDB final
 
API WEB SQL ITParral
API WEB SQL ITParralAPI WEB SQL ITParral
API WEB SQL ITParral
 
WORKSHOP I: Introducción a API REST
WORKSHOP I: Introducción a API RESTWORKSHOP I: Introducción a API REST
WORKSHOP I: Introducción a API REST
 
AWDC para desarrolladores y data scientists
AWDC para desarrolladores y data scientists AWDC para desarrolladores y data scientists
AWDC para desarrolladores y data scientists
 
API como SaaS
API como SaaSAPI como SaaS
API como SaaS
 
Arquitectura java web
Arquitectura java webArquitectura java web
Arquitectura java web
 
Introducción a ASP.NET Web API
Introducción a ASP.NET Web APIIntroducción a ASP.NET Web API
Introducción a ASP.NET Web API
 
Integración de Tecnologías y Plataformas.pptx
Integración de Tecnologías y Plataformas.pptxIntegración de Tecnologías y Plataformas.pptx
Integración de Tecnologías y Plataformas.pptx
 
Introducción a REST - SymfonyVLC
Introducción a REST - SymfonyVLCIntroducción a REST - SymfonyVLC
Introducción a REST - SymfonyVLC
 
OpenAPI 3.0.2
OpenAPI 3.0.2OpenAPI 3.0.2
OpenAPI 3.0.2
 
Angular Conceptos Practicos 1
Angular Conceptos Practicos 1Angular Conceptos Practicos 1
Angular Conceptos Practicos 1
 
Mejorando interfaz de SharePoint 2010 con Silverlight 4
Mejorando interfaz de SharePoint 2010 con Silverlight 4Mejorando interfaz de SharePoint 2010 con Silverlight 4
Mejorando interfaz de SharePoint 2010 con Silverlight 4
 

Mais de CloudAppi

Meme teambuilding
Meme teambuildingMeme teambuilding
Meme teambuildingCloudAppi
 
Api managers
Api managersApi managers
Api managersCloudAppi
 
Cloud appi transformacion digital
Cloud appi   transformacion digitalCloud appi   transformacion digital
Cloud appi transformacion digitalCloudAppi
 
Big data y las apis (big data spain)
Big data y las apis (big data spain)Big data y las apis (big data spain)
Big data y las apis (big data spain)CloudAppi
 
JSDays Desarrolla tu primera API
JSDays Desarrolla tu primera APIJSDays Desarrolla tu primera API
JSDays Desarrolla tu primera APICloudAppi
 
Seguridad en las apis desde un punto de vista de developer
Seguridad en las apis desde un punto de vista de developerSeguridad en las apis desde un punto de vista de developer
Seguridad en las apis desde un punto de vista de developerCloudAppi
 
Taller desarrollo de apis
Taller desarrollo de apisTaller desarrollo de apis
Taller desarrollo de apisCloudAppi
 

Mais de CloudAppi (7)

Meme teambuilding
Meme teambuildingMeme teambuilding
Meme teambuilding
 
Api managers
Api managersApi managers
Api managers
 
Cloud appi transformacion digital
Cloud appi   transformacion digitalCloud appi   transformacion digital
Cloud appi transformacion digital
 
Big data y las apis (big data spain)
Big data y las apis (big data spain)Big data y las apis (big data spain)
Big data y las apis (big data spain)
 
JSDays Desarrolla tu primera API
JSDays Desarrolla tu primera APIJSDays Desarrolla tu primera API
JSDays Desarrolla tu primera API
 
Seguridad en las apis desde un punto de vista de developer
Seguridad en las apis desde un punto de vista de developerSeguridad en las apis desde un punto de vista de developer
Seguridad en las apis desde un punto de vista de developer
 
Taller desarrollo de apis
Taller desarrollo de apisTaller desarrollo de apis
Taller desarrollo de apis
 

Último

Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estossgonzalezp1
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.FlorenciaCattelani
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIhmpuellon
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxJorgeParada26
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativanicho110
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosJhonJairoRodriguezCe
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanamcerpam
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxFederico Castellari
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...JohnRamos830530
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21mariacbr99
 

Último (10)

Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos Basicos
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 

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:
  • 2. SíguenosPatrocinador 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
  • 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
  • 15. DEMO
  • 16. Web Persistencia Base de datos ● Spring Data Rest ● Dominio (@Entity) ● Spring Data JPA (@Repository) ● H2 Demo
  • 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:
  • 20. DEMO
  • 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
  • 23.
  • 24. 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