SlideShare a Scribd company logo
1 of 55
Download to read offline
Construye tu propio Backend
y API REST con Java
Vanessa Galcerà @VanessaGaRe
WTM Lead of GDG Tarragona
● Ingeniera Informática
● 4 años como formadora de Sun Microsystems y Red Hat
● Desarrollo de aplicaciones empresariales con Oracle ADF
En mi tiempo libre:
● Co-fundadora de TarracoDroid y GDG Tarragona
● Women Techmaker Lead
● Apoyo al desarrollo de apps Android
Sobre mi
@VanessaGaRe
Qué queremos hacer?
Arquitectura con API
@VanessaGaRe
Modelo contrario: Arquitectura sin API
@VanessaGaRe
Cómo va a ser nuestro backend
@VanessaGaRe
Qué es JPA
● Java Persistence API
● Facilita el mapeo de objetos
java a datos relacionales
● Simplifica la persistencia de
datos
Clase Entidad
● Objeto de persistencia ligero, Plain Old Java Object (POJO)
● Representa una tabla de la BD (y su instancia, una fila de la tabla)
● Puede extender otras entidades y clases que no son entidades
@VanessaGaRe
Requisitos de una clase Entidad
● Deberían ser anotadas con @Entity
● Deben tener un constructor sin argumentos public o protected
● No puede ser una clase interna, ni un enumerado ni una interfaz
● Las clases, métodos y campos persistentes no pueden ser final
● Deben implementar la interfaz serializable
@VanessaGaRe
Ejemplo:
Vintage Video Games
Qué entidades podemos necesitar
Game:
● name: String
● description: String
● date: Date
● score: float
● platform: String
● id: int
@VanessaGaRe
Qué entidades podemos necesitar
Game:
● name: String
● description: String
● date: Date
● score: float
● platforms: List<Platform>
● id: int
Platform:
● name: String
● description: String
● id: int
@VanessaGaRe
Entidad Game
@VanessaGaRe
Entidad Game
Ejemplo @OneToMany
annotation
@VanessaGaRe
Entidad Game
@VanessaGaRe
Entidad Platform
@VanessaGaRe
Parte práctica:
Vintage Video Games
Qué necesitamos
● Java JDK
● Eclipse para Java EE
○ Tiene que ser la versión soportada por JBoss Tools
● Un servidor Java EE
○ Wildfly
● JBoss Tools for Eclipse
○ Incluyen Forge
@VanessaGaRe
JBoss Tools Installation (1) http://tools.jboss.org
@VanessaGaRe
JBoss Tools Installation (2) http://tools.jboss.org
@VanessaGaRe
JBoss Tools Installation (3) http://tools.jboss.org
Descargar el Eclipse
Instalar JBoss Tools
@VanessaGaRe
Eclipse
@VanessaGaRe
1. Descargar
2. Descomprimir
3. Arrancar
Instalar extensión JBoss Tools en Eclipse (1)
@VanessaGaRe
http://download.jboss.org/jbosstools/neon/stable/updates/
@VanessaGaRe
Instalar extensión JBoss Tools en Eclipse (3)
@VanessaGaRe
Instalar extensión JBoss Tools en Eclipse (4)
@VanessaGaRe
Instalar extensión JBoss Tools en Eclipse (5)
@VanessaGaRe
Servidor WildFly
@VanessaGaRe
1. Descargar
2. Descomprimir
Creamos un
proyecto
Tipo:
● Java EE Web Project
@VanessaGaRe
Comprobaciones
● Plugins necesarios
● Servidor disponible
● …
No tenemos servidor!!
@VanessaGaRe
Añadimos el
servidor
Directorio donde
descomprimimos el zip
del WildFly
@VanessaGaRe
Añadimos el
servidor
Listo!
@VanessaGaRe
Comprobaciones
Ya podemos seleccionar:
● Target Runtime:
WildFly 10
● Create blank project
@VanessaGaRe
Nombre del
proyecto
● Nombre
● Package
@VanessaGaRe
Creamos la
Entidad ‘Game’ (1)
New → JPA Entity
@VanessaGaRe
Creamos la
Entidad ‘Game’ (2)
● Package: model
● Class Name: Game
@VanessaGaRe
Creamos la
Entidad ‘Game’ (3)
Código disponible en:
https://github.com/vgalc
era/Vintage-VideoGames
@VanessaGaRe
Creamos la
Entidad ‘Platform’
Código disponible en:
https://github.com/vgalc
era/Vintage-VideoGames
@VanessaGaRe
Nuestra API REST
● Operaciones CRUD sobre las entidades
● Buscar por:
○ Valoración
○ Nombre
○ Plataforma
● Votar juego → Implica cambiar el modelo
○ + nº votos, puntuación global
○ + scoreUsers @VanessaGaRe
Generar la API REST y la admin UI
JBoss Forge
● Potente herramienta de
desarrollo rápido de apps
● Puede crear la base para
una app a partir de
recursos existentes.
Construir una GUI de Administración
para el Backend
Generar la API REST y la Admin UI (1) → Pulsar Ctrl + 4
@VanessaGaRe
Generar la API REST y la Admin UI (2)
Generar la API REST y la Admin UI (3)
@VanessaGaRe
Generar la API REST y la Admin UI (4)
@VanessaGaRe
Generar la API REST y la Admin UI (5)
@VanessaGaRe
Vamos a ver que ha generado
Desplegar nuestro backend
Desplegar la
aplicación en el
servidor
Run As → Run on Server
@VanessaGaRe
Desplegar la
aplicación en el
servidor
@VanessaGaRe
Controlar el servidor
@VanessaGaRe
Entramos en nuestro backend?
Nuestra
Admin GUI
@VanessaGaRe
@VanessaGaRe
Nuestra
API REST
Gracias!
Vanessa Galcerà
@VanessaGaRe
vgalcera@gmail.com www.techandladies.com
@TechandLadies
info@techandladies.com
www.gdgtarragona.net
@GDGTarragona

More Related Content

What's hot

Crear una base de datos mysql con un script de sql
Crear una base de datos mysql con un script de sqlCrear una base de datos mysql con un script de sql
Crear una base de datos mysql con un script de sqlEmerson Garay
 
[APIdays INTERFACE 2021] The Evolution of API Security for Client-side Applic...
[APIdays INTERFACE 2021] The Evolution of API Security for Client-side Applic...[APIdays INTERFACE 2021] The Evolution of API Security for Client-side Applic...
[APIdays INTERFACE 2021] The Evolution of API Security for Client-side Applic...WSO2
 
Programación Orientada a Objetos - herencia y polimorfismo
Programación Orientada a Objetos - herencia y polimorfismoProgramación Orientada a Objetos - herencia y polimorfismo
Programación Orientada a Objetos - herencia y polimorfismoAlvaro Enrique Ruano
 
jsp - funcionamiento
jsp - funcionamientojsp - funcionamiento
jsp - funcionamientoBoris Salleg
 
Reflection in C Sharp
Reflection in C SharpReflection in C Sharp
Reflection in C SharpHarman Bajwa
 
Asynchronous programming in C#
Asynchronous programming in C#Asynchronous programming in C#
Asynchronous programming in C#Bohdan Pashkovskyi
 
Hibernate Presentation
Hibernate  PresentationHibernate  Presentation
Hibernate Presentationguest11106b
 
Java 8 Default Methods
Java 8 Default MethodsJava 8 Default Methods
Java 8 Default MethodsHaim Michael
 
Introduccion a la poo
Introduccion a la pooIntroduccion a la poo
Introduccion a la pooBoris Salleg
 
Arquitectura y diseño de aplicaciones Java EE
Arquitectura y diseño de aplicaciones Java EEArquitectura y diseño de aplicaciones Java EE
Arquitectura y diseño de aplicaciones Java EECarlos Gavidia-Calderon
 
Istio's mixer policy enforcement with custom adapters (cloud nativecon 17)
Istio's mixer  policy enforcement with custom adapters (cloud nativecon 17)Istio's mixer  policy enforcement with custom adapters (cloud nativecon 17)
Istio's mixer policy enforcement with custom adapters (cloud nativecon 17)Torin Sandall
 
Programación 3: Clases y objetos en Java
Programación 3: Clases y objetos en JavaProgramación 3: Clases y objetos en Java
Programación 3: Clases y objetos en JavaAngel Vázquez Patiño
 
Introduction to java beans
Introduction to java beansIntroduction to java beans
Introduction to java beansHitesh Parmar
 
Guia BD conexión Mysql con Java usando Netbeans
Guia BD conexión Mysql con Java usando NetbeansGuia BD conexión Mysql con Java usando Netbeans
Guia BD conexión Mysql con Java usando NetbeansEmerson Garay
 

What's hot (20)

Crear una base de datos mysql con un script de sql
Crear una base de datos mysql con un script de sqlCrear una base de datos mysql con un script de sql
Crear una base de datos mysql con un script de sql
 
Offzone | Another waf bypass
Offzone | Another waf bypassOffzone | Another waf bypass
Offzone | Another waf bypass
 
[APIdays INTERFACE 2021] The Evolution of API Security for Client-side Applic...
[APIdays INTERFACE 2021] The Evolution of API Security for Client-side Applic...[APIdays INTERFACE 2021] The Evolution of API Security for Client-side Applic...
[APIdays INTERFACE 2021] The Evolution of API Security for Client-side Applic...
 
Java collections notes
Java collections notesJava collections notes
Java collections notes
 
Programación Orientada a Objetos - herencia y polimorfismo
Programación Orientada a Objetos - herencia y polimorfismoProgramación Orientada a Objetos - herencia y polimorfismo
Programación Orientada a Objetos - herencia y polimorfismo
 
jsp - funcionamiento
jsp - funcionamientojsp - funcionamiento
jsp - funcionamiento
 
Reflection in C Sharp
Reflection in C SharpReflection in C Sharp
Reflection in C Sharp
 
Asynchronous programming in C#
Asynchronous programming in C#Asynchronous programming in C#
Asynchronous programming in C#
 
Servidor web
Servidor webServidor web
Servidor web
 
Hibernate Presentation
Hibernate  PresentationHibernate  Presentation
Hibernate Presentation
 
Interfaces en java
Interfaces en javaInterfaces en java
Interfaces en java
 
Java 8 Default Methods
Java 8 Default MethodsJava 8 Default Methods
Java 8 Default Methods
 
Introduccion a la poo
Introduccion a la pooIntroduccion a la poo
Introduccion a la poo
 
Arquitectura y diseño de aplicaciones Java EE
Arquitectura y diseño de aplicaciones Java EEArquitectura y diseño de aplicaciones Java EE
Arquitectura y diseño de aplicaciones Java EE
 
Istio's mixer policy enforcement with custom adapters (cloud nativecon 17)
Istio's mixer  policy enforcement with custom adapters (cloud nativecon 17)Istio's mixer  policy enforcement with custom adapters (cloud nativecon 17)
Istio's mixer policy enforcement with custom adapters (cloud nativecon 17)
 
Programación 3: Clases y objetos en Java
Programación 3: Clases y objetos en JavaProgramación 3: Clases y objetos en Java
Programación 3: Clases y objetos en Java
 
Hibernate in Action
Hibernate in ActionHibernate in Action
Hibernate in Action
 
Introduction to java beans
Introduction to java beansIntroduction to java beans
Introduction to java beans
 
Guia BD conexión Mysql con Java usando Netbeans
Guia BD conexión Mysql con Java usando NetbeansGuia BD conexión Mysql con Java usando Netbeans
Guia BD conexión Mysql con Java usando Netbeans
 
Design patterns in PHP
Design patterns in PHPDesign patterns in PHP
Design patterns in PHP
 

Similar to Construye tu propio Backend y API REST con Java

09. Java desde Cero autor UNAM_1.111.pdf
09. Java desde Cero autor UNAM_1.111.pdf09. Java desde Cero autor UNAM_1.111.pdf
09. Java desde Cero autor UNAM_1.111.pdfIrene619127
 
Taller introducción Java EE 7 @UAPA
Taller introducción Java EE 7  @UAPATaller introducción Java EE 7  @UAPA
Taller introducción Java EE 7 @UAPAEudris Cabrera
 
Proyect Evenge. Event manager
Proyect Evenge. Event managerProyect Evenge. Event manager
Proyect Evenge. Event managerIvan Ortega
 
Caracteristicas de Java
Caracteristicas de JavaCaracteristicas de Java
Caracteristicas de JavaLuzRom
 
Tutorial de eclipsee
Tutorial de eclipseeTutorial de eclipsee
Tutorial de eclipseejavierot99
 
SpringFramework Overview
SpringFramework OverviewSpringFramework Overview
SpringFramework Overviewzerovirus23
 
Programación web framework djando - noviembre de 2014
Programación web   framework djando - noviembre de 2014Programación web   framework djando - noviembre de 2014
Programación web framework djando - noviembre de 2014SandraMartinezG
 
[ES] Introducción a Java EE 7 & HTML 5
[ES] Introducción a Java EE 7 & HTML 5[ES] Introducción a Java EE 7 & HTML 5
[ES] Introducción a Java EE 7 & HTML 5Eudris Cabrera
 
Programación web framework django - noviembre de 2014
Programación web   framework django - noviembre de 2014Programación web   framework django - noviembre de 2014
Programación web framework django - noviembre de 2014Eduardo Ernesto Lechuga
 
Webinar: Groovy y la producttividad para el desarrollador Java
Webinar: Groovy y la producttividad para el desarrollador JavaWebinar: Groovy y la producttividad para el desarrollador Java
Webinar: Groovy y la producttividad para el desarrollador JavaDomingo Suarez Torres
 
Salesforce DX: A closer look
Salesforce DX: A closer lookSalesforce DX: A closer look
Salesforce DX: A closer lookFederico Giust
 

Similar to Construye tu propio Backend y API REST con Java (20)

202204-Modernizando aplicaciones legacy
202204-Modernizando aplicaciones legacy202204-Modernizando aplicaciones legacy
202204-Modernizando aplicaciones legacy
 
Clase 1 jJAVA 2012
Clase 1 jJAVA 2012Clase 1 jJAVA 2012
Clase 1 jJAVA 2012
 
09. Java desde Cero autor UNAM_1.111.pdf
09. Java desde Cero autor UNAM_1.111.pdf09. Java desde Cero autor UNAM_1.111.pdf
09. Java desde Cero autor UNAM_1.111.pdf
 
Taller introducción Java EE 7 @UAPA
Taller introducción Java EE 7  @UAPATaller introducción Java EE 7  @UAPA
Taller introducción Java EE 7 @UAPA
 
Java desde cero
Java desde ceroJava desde cero
Java desde cero
 
Proyect Evenge. Event manager
Proyect Evenge. Event managerProyect Evenge. Event manager
Proyect Evenge. Event manager
 
Caracteristicas de Java
Caracteristicas de JavaCaracteristicas de Java
Caracteristicas de Java
 
Tutorial de eclipsee
Tutorial de eclipseeTutorial de eclipsee
Tutorial de eclipsee
 
Java desde Cero.pdf
Java desde Cero.pdfJava desde Cero.pdf
Java desde Cero.pdf
 
Atix20
Atix20Atix20
Atix20
 
SpringFramework Overview
SpringFramework OverviewSpringFramework Overview
SpringFramework Overview
 
Programación web framework djando - noviembre de 2014
Programación web   framework djando - noviembre de 2014Programación web   framework djando - noviembre de 2014
Programación web framework djando - noviembre de 2014
 
[ES] Introducción a Java EE 7 & HTML 5
[ES] Introducción a Java EE 7 & HTML 5[ES] Introducción a Java EE 7 & HTML 5
[ES] Introducción a Java EE 7 & HTML 5
 
Tutorial eclipse
Tutorial eclipseTutorial eclipse
Tutorial eclipse
 
Programación web framework django - noviembre de 2014
Programación web   framework django - noviembre de 2014Programación web   framework django - noviembre de 2014
Programación web framework django - noviembre de 2014
 
Webinar: Groovy y la producttividad para el desarrollador Java
Webinar: Groovy y la producttividad para el desarrollador JavaWebinar: Groovy y la producttividad para el desarrollador Java
Webinar: Groovy y la producttividad para el desarrollador Java
 
JAVA3.0
JAVA3.0JAVA3.0
JAVA3.0
 
principios básicos
principios básicosprincipios básicos
principios básicos
 
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
 
Salesforce DX: A closer look
Salesforce DX: A closer lookSalesforce DX: A closer look
Salesforce DX: A closer look
 

Construye tu propio Backend y API REST con Java