SlideShare una empresa de Scribd logo
ORACLE OTN TOURAlexis López - aalopez@gmail.com - @aa_lopez AGO-2016 v1
ADF 12c como Backend
REST API
ORACLE OTN TOURAlexis López - aalopez@gmail.com - @aa_lopez AGO-2016 v1
¿Qué es Oracle ADF?
● Framework de desarrollo
● Modelo-Vista-Controlador
● Desarrollado sobre Java EE
● 11g → JavaEE 5
● 12c → JavaEE 6
● Visual y Declarativo
● Interfaz de usuario moderna
● Flujos de navegación avanzados (Task Flows)
● Seguridad integrada
● IDEs: JDeveloper and Eclipse(OEPE)*
*Funcionalidades limitadas
ORACLE OTN TOURAlexis López - aalopez@gmail.com - @aa_lopez AGO-2016 v1
¿Qué es Oracle ADF Essentials?
● Subconjunto de las tecnologías clave de Oracle ADF:
● ADF Faces
● ADF DvT
● ADF Controller
● ADF Binding
● ADF Bussines Components
● Gratis para desarrollar, Gratis para desplegar
● JDeveloper/Eclipse*
● MySQL*
● Glassfish
*Funcionalidades limitadas
ORACLE OTN TOURAlexis López - aalopez@gmail.com - @aa_lopez AGO-2016 v1
ADF 12.2.1.x
● Versión 12.2.1.0 -> liberada en Octubre de 2015
● Versión 12.2.1.1 -> liberada en Junio de 2016
● Actualización a Java SE 8
● Actualización a Java EE 6
● Nuevos componentes para ADF Faces y ADF DvT
● Nuevos componentes y plantilla para diseño adaptable
● Soporta CSS3
● Soporte para últimas versiones de navegadores
● Soporta la creación de APIs tipo Rest a partir del modelo de negocio
● Soporte para Git
● Mejor soporte para Maven
ORACLE OTN TOURAlexis López - aalopez@gmail.com - @aa_lopez AGO-2016 v1
REST
REREpresentational SState TTransfer
file.png
Sin Estado
http://servidor/img/file.png
POST
GET
C
R
U
D
HTTP
URL
XML
... Estándar
...
ORACLE OTN TOURAlexis López - aalopez@gmail.com - @aa_lopez AGO-2016 v1
JSON
JJavaSScript OObject NNotation
{
"RegionsComplete" : {
"discrColumnType" : false,
"attributes" : [ {
"name" : "RegionId",
"type" : "integer",
}, {
"name" : "RegionName",
"type" : "string",
} ]
}
}
<xml>
<RegionsComplete>
<discrColumnType>false</discrColumnType>
<attributes>
<attribute>
<name>RegionId</name>
<type>integer</type>
</attribute>
<attribute>
<name>RegionName</name>
<type>string</type>
</attribute>
</attributes>
</RegionsComplete>
Estándar
AZ...
ORACLE OTN TOURAlexis López - aalopez@gmail.com - @aa_lopez AGO-2016 v1
HATEOAS
HHypermedia AAs TThe EEngine OOf AApplication SState
● Links en las respuestas
● Cliente puede navegar
dinámicamente
● Dos estilos:
– Weblinking
– HAL
ORACLE OTN TOURAlexis López - aalopez@gmail.com - @aa_lopez AGO-2016 v1
REST API
RAML
Apiary
HTTP
ORACLE OTN TOURAlexis López - aalopez@gmail.com - @aa_lopez AGO-2016 v1
REST API – Guía de diseño
● Identificar los recursos
● Transformar operaciones a métodos HTTP
● Seguir patrón de nombres para los recursos
– Sustantivos
– Plural para las colecciones
– Usar – Evitar _
– No exceder 200 chars
● Usar Accept y Content-Type
● Usar HTTP Caché
ORACLE OTN TOURAlexis López - aalopez@gmail.com - @aa_lopez AGO-2016 v1
REST API – Guía de diseño
● Usar Accept-Language para multilenguaje
● Fechas y horas -> Usar ISO8601
● Respuesta parcial
● Actualización parcial
● Consistencia en datos
● Retornar recursos modificados
● Paginación en colecciones
● Búsqueda y ordenamiento
● Versionamiento
ORACLE OTN TOURAlexis López - aalopez@gmail.com - @aa_lopez AGO-2016 v1
REST API – Versionamiento
✔ Siempre
✔ Permite nuevas versiones
✔ Compatibilidad hacia atrás
por un tiempo
Tres técnicas:
1) Num. Versión en URL
2) HTTP Custom-Header
3) HTTP Accept
ORACLE OTN TOURAlexis López - aalopez@gmail.com - @aa_lopez AGO-2016 v1
ADF 12c – ADF BC RESTful Web Services
ORACLE OTN TOURAlexis López - aalopez@gmail.com - @aa_lopez AGO-2016 v1
ADF 12c – ADF BC RESTful Web Services
● latest -> Se refiere a la versión más actual
● describe -> Para obtener información de los recursos
– Response Content-Type: application/vnd.oracle.adf.description+json
● onlyData=true -> Retorna solo datos, sin enlaces
● totalResults=true -> Retorna también la cantidad de registros
● No usar PUT, usar PATCH
● POST/PATCH Content-Type: application/vnd.oracle.adf.resourceitem+json
● Métodos personalizados
– Content-Type: application/vnd.oracle.adf.action+json
● Sólo ViewObjects creadas de forma declarativa ofrecen opciones avanzadas
ORACLE OTN TOURAlexis López - aalopez@gmail.com - @aa_lopez AGO-2016 v1
Demo
1) Crear REST API para regiones y países del esquema HR
2) Crear una nueva versión de la REST API
3) Respuesta parcial: fields=att1,att2...
4) CRUD
5) Métodos personalizados
6) Paginación: limit, offset, count, hasMore
7) Filtros:
1) finder=PrimaryKey;Id=X,Id2=Y
2) q=Att=<>...
8) Ordenamiento: Att:asc/desc,Att2:asc/desc
ORACLE OTN TOURAlexis López - aalopez@gmail.com - @aa_lopez AGO-2016 v1
Recursos en línea
● acelopez.com - Blog acerca de Java y ADF
● Código fuente de ADF – Oracle Support
● ADF Architecture TV
● Grupo de metodología empresarial de ADF (ADF EMG)
● Comunidad ADF en Google+
● OTN Forums – JDeveloper y ADF
● Oracle ADF Architecture Square
● Oracle ADF Code Corner
● Íconos: Benjamin STAWARZ (descargados desde iconfinder.com)

Más contenido relacionado

Destacado

Powerpoint weekend 4
Powerpoint weekend  4Powerpoint weekend  4
Powerpoint weekend 4
lsanzmaria
 
Boletín renacer dos
Boletín renacer dosBoletín renacer dos
Boletín renacer dos
Juan Carlos Paredes Plaza
 
Próximas sesiones
Próximas sesionesPróximas sesiones
Próximas sesiones
Aida March
 
6 funcionamiento de un ordenador
6 funcionamiento de un ordenador6 funcionamiento de un ordenador
6 funcionamiento de un ordenador
conrado perea
 
Tiziano y el retrato cortesano
Tiziano y el retrato cortesanoTiziano y el retrato cortesano
Tiziano y el retrato cortesano
Antxon Bonfante
 
FATLA_fase_2_planificación_Yerikson
FATLA_fase_2_planificación_YeriksonFATLA_fase_2_planificación_Yerikson
FATLA_fase_2_planificación_Yerikson
Yerikson Huz
 
Canales de comunicación paralelos en situaciones no-formales de aprendizaje ...
Canales de comunicación paralelos en situaciones no-formales de aprendizaje ...Canales de comunicación paralelos en situaciones no-formales de aprendizaje ...
Canales de comunicación paralelos en situaciones no-formales de aprendizaje ...
Linda Castañeda
 
Twitter
TwitterTwitter
Twitter
yta
 
3 introducción al hardware
3 introducción al hardware3 introducción al hardware
3 introducción al hardware
conrado perea
 
Llegelfindesemana
LlegelfindesemanaLlegelfindesemana
Llegelfindesemana
Iago Fernández
 
P Raul C
P Raul CP Raul C
P Raul C
ovruni
 
Communitymanager online msncor_pv3_junio2013
Communitymanager online msncor_pv3_junio2013Communitymanager online msncor_pv3_junio2013
Communitymanager online msncor_pv3_junio2013
Sr. Zegarra Villalobos
 
Presentación Merce
Presentación MercePresentación Merce
Presentación Merce
eridaura
 
El carnaval
El carnavalEl carnaval
El carnaval
Aida March
 
Analítica y Retorno de Inversión en Social Media.
Analítica y Retorno de Inversión en Social Media. Analítica y Retorno de Inversión en Social Media.
Analítica y Retorno de Inversión en Social Media.
Pablo Di Meglio
 
Presen Final
Presen FinalPresen Final
Presen Final
Eloisa Careaga
 
CETIS No. 47
CETIS No. 47CETIS No. 47
CETIS No. 47
Manuel Trujillo
 
Influenza Salud
Influenza SaludInfluenza Salud
Influenza Salud
Rodo Cabral
 
Inserir I Reproduir So
Inserir I Reproduir SoInserir I Reproduir So
Inserir I Reproduir So
Infant Jesús
 
23 microprocesadores
23 microprocesadores23 microprocesadores
23 microprocesadores
conrado perea
 

Destacado (20)

Powerpoint weekend 4
Powerpoint weekend  4Powerpoint weekend  4
Powerpoint weekend 4
 
Boletín renacer dos
Boletín renacer dosBoletín renacer dos
Boletín renacer dos
 
Próximas sesiones
Próximas sesionesPróximas sesiones
Próximas sesiones
 
6 funcionamiento de un ordenador
6 funcionamiento de un ordenador6 funcionamiento de un ordenador
6 funcionamiento de un ordenador
 
Tiziano y el retrato cortesano
Tiziano y el retrato cortesanoTiziano y el retrato cortesano
Tiziano y el retrato cortesano
 
FATLA_fase_2_planificación_Yerikson
FATLA_fase_2_planificación_YeriksonFATLA_fase_2_planificación_Yerikson
FATLA_fase_2_planificación_Yerikson
 
Canales de comunicación paralelos en situaciones no-formales de aprendizaje ...
Canales de comunicación paralelos en situaciones no-formales de aprendizaje ...Canales de comunicación paralelos en situaciones no-formales de aprendizaje ...
Canales de comunicación paralelos en situaciones no-formales de aprendizaje ...
 
Twitter
TwitterTwitter
Twitter
 
3 introducción al hardware
3 introducción al hardware3 introducción al hardware
3 introducción al hardware
 
Llegelfindesemana
LlegelfindesemanaLlegelfindesemana
Llegelfindesemana
 
P Raul C
P Raul CP Raul C
P Raul C
 
Communitymanager online msncor_pv3_junio2013
Communitymanager online msncor_pv3_junio2013Communitymanager online msncor_pv3_junio2013
Communitymanager online msncor_pv3_junio2013
 
Presentación Merce
Presentación MercePresentación Merce
Presentación Merce
 
El carnaval
El carnavalEl carnaval
El carnaval
 
Analítica y Retorno de Inversión en Social Media.
Analítica y Retorno de Inversión en Social Media. Analítica y Retorno de Inversión en Social Media.
Analítica y Retorno de Inversión en Social Media.
 
Presen Final
Presen FinalPresen Final
Presen Final
 
CETIS No. 47
CETIS No. 47CETIS No. 47
CETIS No. 47
 
Influenza Salud
Influenza SaludInfluenza Salud
Influenza Salud
 
Inserir I Reproduir So
Inserir I Reproduir SoInserir I Reproduir So
Inserir I Reproduir So
 
23 microprocesadores
23 microprocesadores23 microprocesadores
23 microprocesadores
 

Similar a ADF 12c como tu "Backend"

Integracion Continua en Oracle ADF
Integracion Continua en Oracle ADFIntegracion Continua en Oracle ADF
Integracion Continua en Oracle ADF
Guatemala User Group
 
01 Ext Js Introduccion
01 Ext Js   Introduccion01 Ext Js   Introduccion
01 Ext Js Introduccion
Mayer Horna
 
Servidor y cliente iOS en 45min
Servidor y cliente iOS en 45minServidor y cliente iOS en 45min
Servidor y cliente iOS en 45min
Javier Moreno
 
JAVASCRIPT.pptx
JAVASCRIPT.pptxJAVASCRIPT.pptx
JAVASCRIPT.pptx
HectorGaviria8
 
Ajax Huancayo
Ajax HuancayoAjax Huancayo
Ajax Huancayo
Jonathan Lara Vasquez
 
Desarrollo de Aplicaciones con Ruby on Rails y PostgreSQL
Desarrollo de Aplicaciones con Ruby on Rails y PostgreSQLDesarrollo de Aplicaciones con Ruby on Rails y PostgreSQL
Desarrollo de Aplicaciones con Ruby on Rails y PostgreSQL
José Alfredo Ramírez
 
Servicios Rest con Jersey
Servicios Rest con Jersey Servicios Rest con Jersey
Servicios Rest con Jersey
Vortexbird
 
Introducción a NodeJS
Introducción a NodeJSIntroducción a NodeJS
Introducción a NodeJS
BEEVA_es
 
Oracle xmldb
Oracle xmldbOracle xmldb
Oracle xmldb
Hermes Romero
 
S4-PD1-2.2 EF
S4-PD1-2.2 EFS4-PD1-2.2 EF
Servicios Web Rest con Spring MVC
Servicios Web Rest con Spring MVCServicios Web Rest con Spring MVC
Servicios Web Rest con Spring MVC
Vortexbird
 
Oracle Database 11g vs 12c
Oracle Database 11g vs 12cOracle Database 11g vs 12c
Oracle Database 11g vs 12c
Deiby Gómez
 
01 Conociendo Ooracle Apex part01
01 Conociendo Ooracle Apex part0101 Conociendo Ooracle Apex part01
01 Conociendo Ooracle Apex part01
Jesús Canales Guando
 
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
BEEVA_es
 
Evolucion de big data @ mercadolibre.com
Evolucion de big data @ mercadolibre.comEvolucion de big data @ mercadolibre.com
Evolucion de big data @ mercadolibre.com
Gabriel Eisbruch
 
PHPAJAX
PHPAJAXPHPAJAX
PHPAJAX
rodasc
 
Servicios web Extendido_error perl
Servicios web Extendido_error perlServicios web Extendido_error perl
Servicios web Extendido_error perl
Octavio Izucar Martinez
 
S4 - EF
S4 - EFS4 - EF
Integración de aplicaciones Java
Integración de aplicaciones JavaIntegración de aplicaciones Java
Integración de aplicaciones Java
Iker Canarias
 
Web services restful con JAX-RS
Web services restful con JAX-RSWeb services restful con JAX-RS
Web services restful con JAX-RS
Vortexbird
 

Similar a ADF 12c como tu "Backend" (20)

Integracion Continua en Oracle ADF
Integracion Continua en Oracle ADFIntegracion Continua en Oracle ADF
Integracion Continua en Oracle ADF
 
01 Ext Js Introduccion
01 Ext Js   Introduccion01 Ext Js   Introduccion
01 Ext Js Introduccion
 
Servidor y cliente iOS en 45min
Servidor y cliente iOS en 45minServidor y cliente iOS en 45min
Servidor y cliente iOS en 45min
 
JAVASCRIPT.pptx
JAVASCRIPT.pptxJAVASCRIPT.pptx
JAVASCRIPT.pptx
 
Ajax Huancayo
Ajax HuancayoAjax Huancayo
Ajax Huancayo
 
Desarrollo de Aplicaciones con Ruby on Rails y PostgreSQL
Desarrollo de Aplicaciones con Ruby on Rails y PostgreSQLDesarrollo de Aplicaciones con Ruby on Rails y PostgreSQL
Desarrollo de Aplicaciones con Ruby on Rails y PostgreSQL
 
Servicios Rest con Jersey
Servicios Rest con Jersey Servicios Rest con Jersey
Servicios Rest con Jersey
 
Introducción a NodeJS
Introducción a NodeJSIntroducción a NodeJS
Introducción a NodeJS
 
Oracle xmldb
Oracle xmldbOracle xmldb
Oracle xmldb
 
S4-PD1-2.2 EF
S4-PD1-2.2 EFS4-PD1-2.2 EF
S4-PD1-2.2 EF
 
Servicios Web Rest con Spring MVC
Servicios Web Rest con Spring MVCServicios Web Rest con Spring MVC
Servicios Web Rest con Spring MVC
 
Oracle Database 11g vs 12c
Oracle Database 11g vs 12cOracle Database 11g vs 12c
Oracle Database 11g vs 12c
 
01 Conociendo Ooracle Apex part01
01 Conociendo Ooracle Apex part0101 Conociendo Ooracle Apex part01
01 Conociendo Ooracle Apex part01
 
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
 
Evolucion de big data @ mercadolibre.com
Evolucion de big data @ mercadolibre.comEvolucion de big data @ mercadolibre.com
Evolucion de big data @ mercadolibre.com
 
PHPAJAX
PHPAJAXPHPAJAX
PHPAJAX
 
Servicios web Extendido_error perl
Servicios web Extendido_error perlServicios web Extendido_error perl
Servicios web Extendido_error perl
 
S4 - EF
S4 - EFS4 - EF
S4 - EF
 
Integración de aplicaciones Java
Integración de aplicaciones JavaIntegración de aplicaciones Java
Integración de aplicaciones Java
 
Web services restful con JAX-RS
Web services restful con JAX-RSWeb services restful con JAX-RS
Web services restful con JAX-RS
 

Más de Alexis Lopez

Más allá de Git add/commit/push
Más allá de Git add/commit/pushMás allá de Git add/commit/push
Más allá de Git add/commit/push
Alexis Lopez
 
40 Novedades de JavaSE 9
40 Novedades de JavaSE 940 Novedades de JavaSE 9
40 Novedades de JavaSE 9
Alexis Lopez
 
Lambdas y API Stream #PerúJUG #Java20
Lambdas y API Stream #PerúJUG #Java20Lambdas y API Stream #PerúJUG #Java20
Lambdas y API Stream #PerúJUG #Java20
Alexis Lopez
 
Lambdas y API Stream - Apuntes de Java
Lambdas y API Stream - Apuntes de JavaLambdas y API Stream - Apuntes de Java
Lambdas y API Stream - Apuntes de Java
Alexis Lopez
 
JSR354: Moneda y Dinero - Taller
JSR354: Moneda y Dinero - TallerJSR354: Moneda y Dinero - Taller
JSR354: Moneda y Dinero - Taller
Alexis Lopez
 
JSR354: Moneda y Dinero
JSR354: Moneda y DineroJSR354: Moneda y Dinero
JSR354: Moneda y Dinero
Alexis Lopez
 

Más de Alexis Lopez (6)

Más allá de Git add/commit/push
Más allá de Git add/commit/pushMás allá de Git add/commit/push
Más allá de Git add/commit/push
 
40 Novedades de JavaSE 9
40 Novedades de JavaSE 940 Novedades de JavaSE 9
40 Novedades de JavaSE 9
 
Lambdas y API Stream #PerúJUG #Java20
Lambdas y API Stream #PerúJUG #Java20Lambdas y API Stream #PerúJUG #Java20
Lambdas y API Stream #PerúJUG #Java20
 
Lambdas y API Stream - Apuntes de Java
Lambdas y API Stream - Apuntes de JavaLambdas y API Stream - Apuntes de Java
Lambdas y API Stream - Apuntes de Java
 
JSR354: Moneda y Dinero - Taller
JSR354: Moneda y Dinero - TallerJSR354: Moneda y Dinero - Taller
JSR354: Moneda y Dinero - Taller
 
JSR354: Moneda y Dinero
JSR354: Moneda y DineroJSR354: Moneda y Dinero
JSR354: Moneda y Dinero
 

Último

herramientaswebpdfwww.edu.pe.edu.institutoluisevalcarcel
herramientaswebpdfwww.edu.pe.edu.institutoluisevalcarcelherramientaswebpdfwww.edu.pe.edu.institutoluisevalcarcel
herramientaswebpdfwww.edu.pe.edu.institutoluisevalcarcel
Eduardo455921
 
DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.
DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.
DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.
Maria Celeste Trujillo Cruz
 
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
micarnavaltupatrimon
 
primer manual de nuestra compañía de soporte
primer manual de nuestra compañía de soporteprimer manual de nuestra compañía de soporte
primer manual de nuestra compañía de soporte
eliersin13
 
Introduccion al Lenguaje de Programación C++
Introduccion al Lenguaje de Programación  C++Introduccion al Lenguaje de Programación  C++
Introduccion al Lenguaje de Programación C++
PaulDelgadoSoto
 
TARJETA MADRE DE DAYRON FABRI RUIZ-1.pptx
TARJETA MADRE DE DAYRON FABRI RUIZ-1.pptxTARJETA MADRE DE DAYRON FABRI RUIZ-1.pptx
TARJETA MADRE DE DAYRON FABRI RUIZ-1.pptx
dayronfabricioruizmo
 
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
micarnavaltupatrimon
 

Último (7)

herramientaswebpdfwww.edu.pe.edu.institutoluisevalcarcel
herramientaswebpdfwww.edu.pe.edu.institutoluisevalcarcelherramientaswebpdfwww.edu.pe.edu.institutoluisevalcarcel
herramientaswebpdfwww.edu.pe.edu.institutoluisevalcarcel
 
DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.
DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.
DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.
 
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
 
primer manual de nuestra compañía de soporte
primer manual de nuestra compañía de soporteprimer manual de nuestra compañía de soporte
primer manual de nuestra compañía de soporte
 
Introduccion al Lenguaje de Programación C++
Introduccion al Lenguaje de Programación  C++Introduccion al Lenguaje de Programación  C++
Introduccion al Lenguaje de Programación C++
 
TARJETA MADRE DE DAYRON FABRI RUIZ-1.pptx
TARJETA MADRE DE DAYRON FABRI RUIZ-1.pptxTARJETA MADRE DE DAYRON FABRI RUIZ-1.pptx
TARJETA MADRE DE DAYRON FABRI RUIZ-1.pptx
 
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
 

ADF 12c como tu "Backend"

  • 1. ORACLE OTN TOURAlexis López - aalopez@gmail.com - @aa_lopez AGO-2016 v1 ADF 12c como Backend REST API
  • 2. ORACLE OTN TOURAlexis López - aalopez@gmail.com - @aa_lopez AGO-2016 v1 ¿Qué es Oracle ADF? ● Framework de desarrollo ● Modelo-Vista-Controlador ● Desarrollado sobre Java EE ● 11g → JavaEE 5 ● 12c → JavaEE 6 ● Visual y Declarativo ● Interfaz de usuario moderna ● Flujos de navegación avanzados (Task Flows) ● Seguridad integrada ● IDEs: JDeveloper and Eclipse(OEPE)* *Funcionalidades limitadas
  • 3. ORACLE OTN TOURAlexis López - aalopez@gmail.com - @aa_lopez AGO-2016 v1 ¿Qué es Oracle ADF Essentials? ● Subconjunto de las tecnologías clave de Oracle ADF: ● ADF Faces ● ADF DvT ● ADF Controller ● ADF Binding ● ADF Bussines Components ● Gratis para desarrollar, Gratis para desplegar ● JDeveloper/Eclipse* ● MySQL* ● Glassfish *Funcionalidades limitadas
  • 4. ORACLE OTN TOURAlexis López - aalopez@gmail.com - @aa_lopez AGO-2016 v1 ADF 12.2.1.x ● Versión 12.2.1.0 -> liberada en Octubre de 2015 ● Versión 12.2.1.1 -> liberada en Junio de 2016 ● Actualización a Java SE 8 ● Actualización a Java EE 6 ● Nuevos componentes para ADF Faces y ADF DvT ● Nuevos componentes y plantilla para diseño adaptable ● Soporta CSS3 ● Soporte para últimas versiones de navegadores ● Soporta la creación de APIs tipo Rest a partir del modelo de negocio ● Soporte para Git ● Mejor soporte para Maven
  • 5. ORACLE OTN TOURAlexis López - aalopez@gmail.com - @aa_lopez AGO-2016 v1 REST REREpresentational SState TTransfer file.png Sin Estado http://servidor/img/file.png POST GET C R U D HTTP URL XML ... Estándar ...
  • 6. ORACLE OTN TOURAlexis López - aalopez@gmail.com - @aa_lopez AGO-2016 v1 JSON JJavaSScript OObject NNotation { "RegionsComplete" : { "discrColumnType" : false, "attributes" : [ { "name" : "RegionId", "type" : "integer", }, { "name" : "RegionName", "type" : "string", } ] } } <xml> <RegionsComplete> <discrColumnType>false</discrColumnType> <attributes> <attribute> <name>RegionId</name> <type>integer</type> </attribute> <attribute> <name>RegionName</name> <type>string</type> </attribute> </attributes> </RegionsComplete> Estándar AZ...
  • 7. ORACLE OTN TOURAlexis López - aalopez@gmail.com - @aa_lopez AGO-2016 v1 HATEOAS HHypermedia AAs TThe EEngine OOf AApplication SState ● Links en las respuestas ● Cliente puede navegar dinámicamente ● Dos estilos: – Weblinking – HAL
  • 8. ORACLE OTN TOURAlexis López - aalopez@gmail.com - @aa_lopez AGO-2016 v1 REST API RAML Apiary HTTP
  • 9. ORACLE OTN TOURAlexis López - aalopez@gmail.com - @aa_lopez AGO-2016 v1 REST API – Guía de diseño ● Identificar los recursos ● Transformar operaciones a métodos HTTP ● Seguir patrón de nombres para los recursos – Sustantivos – Plural para las colecciones – Usar – Evitar _ – No exceder 200 chars ● Usar Accept y Content-Type ● Usar HTTP Caché
  • 10. ORACLE OTN TOURAlexis López - aalopez@gmail.com - @aa_lopez AGO-2016 v1 REST API – Guía de diseño ● Usar Accept-Language para multilenguaje ● Fechas y horas -> Usar ISO8601 ● Respuesta parcial ● Actualización parcial ● Consistencia en datos ● Retornar recursos modificados ● Paginación en colecciones ● Búsqueda y ordenamiento ● Versionamiento
  • 11. ORACLE OTN TOURAlexis López - aalopez@gmail.com - @aa_lopez AGO-2016 v1 REST API – Versionamiento ✔ Siempre ✔ Permite nuevas versiones ✔ Compatibilidad hacia atrás por un tiempo Tres técnicas: 1) Num. Versión en URL 2) HTTP Custom-Header 3) HTTP Accept
  • 12. ORACLE OTN TOURAlexis López - aalopez@gmail.com - @aa_lopez AGO-2016 v1 ADF 12c – ADF BC RESTful Web Services
  • 13. ORACLE OTN TOURAlexis López - aalopez@gmail.com - @aa_lopez AGO-2016 v1 ADF 12c – ADF BC RESTful Web Services ● latest -> Se refiere a la versión más actual ● describe -> Para obtener información de los recursos – Response Content-Type: application/vnd.oracle.adf.description+json ● onlyData=true -> Retorna solo datos, sin enlaces ● totalResults=true -> Retorna también la cantidad de registros ● No usar PUT, usar PATCH ● POST/PATCH Content-Type: application/vnd.oracle.adf.resourceitem+json ● Métodos personalizados – Content-Type: application/vnd.oracle.adf.action+json ● Sólo ViewObjects creadas de forma declarativa ofrecen opciones avanzadas
  • 14. ORACLE OTN TOURAlexis López - aalopez@gmail.com - @aa_lopez AGO-2016 v1 Demo 1) Crear REST API para regiones y países del esquema HR 2) Crear una nueva versión de la REST API 3) Respuesta parcial: fields=att1,att2... 4) CRUD 5) Métodos personalizados 6) Paginación: limit, offset, count, hasMore 7) Filtros: 1) finder=PrimaryKey;Id=X,Id2=Y 2) q=Att=<>... 8) Ordenamiento: Att:asc/desc,Att2:asc/desc
  • 15. ORACLE OTN TOURAlexis López - aalopez@gmail.com - @aa_lopez AGO-2016 v1 Recursos en línea ● acelopez.com - Blog acerca de Java y ADF ● Código fuente de ADF – Oracle Support ● ADF Architecture TV ● Grupo de metodología empresarial de ADF (ADF EMG) ● Comunidad ADF en Google+ ● OTN Forums – JDeveloper y ADF ● Oracle ADF Architecture Square ● Oracle ADF Code Corner ● Íconos: Benjamin STAWARZ (descargados desde iconfinder.com)