SlideShare una empresa de Scribd logo
1 de 55
Descargar para leer sin conexión
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

Más contenido relacionado

La actualidad más candente

Django REST Framework
Django REST FrameworkDjango REST Framework
Django REST FrameworkLoad Impact
 
FULL stack -> MEAN stack
FULL stack -> MEAN stackFULL stack -> MEAN stack
FULL stack -> MEAN stackAshok Raj
 
Angular Directives | Angular 2 Custom Directives | Angular Tutorial | Angular...
Angular Directives | Angular 2 Custom Directives | Angular Tutorial | Angular...Angular Directives | Angular 2 Custom Directives | Angular Tutorial | Angular...
Angular Directives | Angular 2 Custom Directives | Angular Tutorial | Angular...Edureka!
 
(Big) Data Serialization with Avro and Protobuf
(Big) Data Serialization with Avro and Protobuf(Big) Data Serialization with Avro and Protobuf
(Big) Data Serialization with Avro and ProtobufGuido Schmutz
 
androidstudio.pptx
androidstudio.pptxandroidstudio.pptx
androidstudio.pptxSundaresanB5
 
Sizing Amazon Elasticsearch Service for your workload - ADB303 - Santa Clara ...
Sizing Amazon Elasticsearch Service for your workload - ADB303 - Santa Clara ...Sizing Amazon Elasticsearch Service for your workload - ADB303 - Santa Clara ...
Sizing Amazon Elasticsearch Service for your workload - ADB303 - Santa Clara ...Amazon Web Services
 
Webinar: Working with Graph Data in MongoDB
Webinar: Working with Graph Data in MongoDBWebinar: Working with Graph Data in MongoDB
Webinar: Working with Graph Data in MongoDBMongoDB
 
Solr for Indexing and Searching Logs
Solr for Indexing and Searching LogsSolr for Indexing and Searching Logs
Solr for Indexing and Searching LogsSematext Group, Inc.
 
Angular js routing options
Angular js routing optionsAngular js routing options
Angular js routing optionsNir Kaufman
 
Introduction to Swagger
Introduction to SwaggerIntroduction to Swagger
Introduction to SwaggerKnoldus Inc.
 

La actualidad más candente (20)

Angular js
Angular jsAngular js
Angular js
 
Django REST Framework
Django REST FrameworkDjango REST Framework
Django REST Framework
 
Angular
AngularAngular
Angular
 
CROSS PLATFORM APPLICATIONS DEVELOPMENT
CROSS PLATFORM APPLICATIONS DEVELOPMENT CROSS PLATFORM APPLICATIONS DEVELOPMENT
CROSS PLATFORM APPLICATIONS DEVELOPMENT
 
FULL stack -> MEAN stack
FULL stack -> MEAN stackFULL stack -> MEAN stack
FULL stack -> MEAN stack
 
Angular Directives | Angular 2 Custom Directives | Angular Tutorial | Angular...
Angular Directives | Angular 2 Custom Directives | Angular Tutorial | Angular...Angular Directives | Angular 2 Custom Directives | Angular Tutorial | Angular...
Angular Directives | Angular 2 Custom Directives | Angular Tutorial | Angular...
 
(Big) Data Serialization with Avro and Protobuf
(Big) Data Serialization with Avro and Protobuf(Big) Data Serialization with Avro and Protobuf
(Big) Data Serialization with Avro and Protobuf
 
Angular 9
Angular 9 Angular 9
Angular 9
 
androidstudio.pptx
androidstudio.pptxandroidstudio.pptx
androidstudio.pptx
 
Sizing Amazon Elasticsearch Service for your workload - ADB303 - Santa Clara ...
Sizing Amazon Elasticsearch Service for your workload - ADB303 - Santa Clara ...Sizing Amazon Elasticsearch Service for your workload - ADB303 - Santa Clara ...
Sizing Amazon Elasticsearch Service for your workload - ADB303 - Santa Clara ...
 
Webinar: Working with Graph Data in MongoDB
Webinar: Working with Graph Data in MongoDBWebinar: Working with Graph Data in MongoDB
Webinar: Working with Graph Data in MongoDB
 
MSDN - ASP.NET MVC
MSDN - ASP.NET MVCMSDN - ASP.NET MVC
MSDN - ASP.NET MVC
 
Solr for Indexing and Searching Logs
Solr for Indexing and Searching LogsSolr for Indexing and Searching Logs
Solr for Indexing and Searching Logs
 
Angular overview
Angular overviewAngular overview
Angular overview
 
Rest api-basic
Rest api-basicRest api-basic
Rest api-basic
 
Web api
Web apiWeb api
Web api
 
New relic
New relicNew relic
New relic
 
Angular js routing options
Angular js routing optionsAngular js routing options
Angular js routing options
 
Introduction to Swagger
Introduction to SwaggerIntroduction to Swagger
Introduction to Swagger
 
AngularJS
AngularJS AngularJS
AngularJS
 

Similar a 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 a 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