ADF 12c como Backend

15
ORACLE OTN TOUR Alexis López - [email protected] - @aa_lopez AGO-2016 v1 ADF 12c como Backend REST API

Transcript of ADF 12c como Backend

Page 1: ADF 12c como Backend

ORACLE OTN TOURAlexis López - [email protected] - @aa_lopez AGO-2016 v1

ADF 12c como Backend

REST API

Page 2: ADF 12c como Backend

ORACLE OTN TOURAlexis López - [email protected] - @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

Page 3: ADF 12c como Backend

ORACLE OTN TOURAlexis López - [email protected] - @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

Page 4: ADF 12c como Backend

ORACLE OTN TOURAlexis López - [email protected] - @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

Page 5: ADF 12c como Backend

ORACLE OTN TOURAlexis López - [email protected] - @aa_lopez AGO-2016 v1

RESTREREpresentational SState TTransfer

file.pngSin Estado

http://servidor/img/file.png

POST

GET

CRUD

HTTP

URL

XML

... Estándar

...

Page 6: ADF 12c como Backend

ORACLE OTN TOURAlexis López - [email protected] - @aa_lopez AGO-2016 v1

JSONJJavaSScript 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ándarAZ...

Page 7: ADF 12c como Backend

ORACLE OTN TOURAlexis López - [email protected] - @aa_lopez AGO-2016 v1

HATEOASHHypermedia AAs TThe EEngine OOf AApplication SState

● Links en las respuestas● Cliente puede navegar

dinámicamente● Dos estilos:

– Weblinking

– HAL

Page 8: ADF 12c como Backend

ORACLE OTN TOURAlexis López - [email protected] - @aa_lopez AGO-2016 v1

REST API

RAML

Apiary

HTTP

Page 9: ADF 12c como Backend

ORACLE OTN TOURAlexis López - [email protected] - @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é

Page 10: ADF 12c como Backend

ORACLE OTN TOURAlexis López - [email protected] - @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

Page 11: ADF 12c como Backend

ORACLE OTN TOURAlexis López - [email protected] - @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

Page 12: ADF 12c como Backend

ORACLE OTN TOURAlexis López - [email protected] - @aa_lopez AGO-2016 v1

ADF 12c – ADF BC RESTful Web Services

Page 13: ADF 12c como Backend

ORACLE OTN TOURAlexis López - [email protected] - @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

Page 14: ADF 12c como Backend

ORACLE OTN TOURAlexis López - [email protected] - @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