Web Source Modules - La nueva característica de Oracle Application Express 5.2 Early Adopter para trabajar con el Servicio REST en forma declarativa

Por Clarisa Maman Orfali Oracle ACE
Publicado en Febrero 2018

Revisado por Diego Andres Casas Avellaneda


Dentro de las nuevas características que vienen con Oracle APEX 5.2 se encuentra una característica con la cual podemos crear con gran sencillez las referencias a uno o múltiples servicios web externos, usando el “Web Source Modules”. Esto se encuentra dentro de la sección “Data Sources” en Componentes Compartidos de nuestro Application Express Early Adopter.


Un módulo puede contener una o varias operaciones de origen web que son las referencias a un servicio web externo concreto. Las configuraciones en el nivel del módulo se comparten en todas las operaciones de este módulo.



OMDb API The Open Movie Database

Para comprender el uso de esta nueva característica vamos a ver un ejemplo en el cual podemos crear un informe directamente desde un servicio REST externo. Por ello, quiero presentarte esta guía en la cual realizaremos un informe clásico que mostrará un listado de películas en base a la API de OMDb (The Open Movie Database).

Para implementar este ejemplo lo primero que necesitamos conseguir es nuestra API Key de OMDb. La API OMDb es un servicio web RESTful para obtener información sobre películas. Desde el sitio web de  OMDb  seleccionamos el menú API Key para solicitar una key. Una vez que recibamos nuestra API key la reservamos.

Cuando trabajamos con servicios REST necesitamos conocer cómo debemos hacer la solicitud de API.

  • Enviamos todas las solicitudes de datos a: http://www.omdbapi.com/?apikey=[myapikey]&
  • Todas las solicitudes de API de póster a: http://img.omdbapi.com/?apikey=[myapikey]&

Disponemos de varios parámetros que lo podemos ver en el sitio web, en esta guía solo vamos a utilizar el parámetro “s” que representa el título de la película que buscamos, el parámetro “page” que representa el número de página y el parámetro “type” que representa el tipo de película, si es movie, series o episode.


Por ejemplo, para realizar una solicitud de mostrar las películas que tengan la palabra “tango” en su título, que muestre la página “2” y el tipo sea “movie”, tendríamos que usar la siguiente URL:
http://www.omdbapi.com/?s=tango&page=2&type=movie&apikey=[miapikey]

  • s=tango
  • page=2
  • type=movie
  • apikey=[miapikey]

La solicitud en nuestro navegador nos muestra los siguientes resultados:



El objetivo de esta guía es lograr tener un reporte clásico que muestre un listado de películas filtrado por título, número de página y el tipo de película.





Crear los metadatos del Servicio REST

Para realizar esto vamos a utilizar la nueva funcionalidad que nos brinda APEX 5.2 Early Adopter, el “Web Source Modules”.

Creamos en primera instancia una aplicación de tipo escritorio en nuestro espacio de trabajo en https://apexea.oracle.com si aún no tienes uno solicita un espacio de trabajo que es gratis!



Una vez creada la aplicación, ingresamos a Componentes Compartidos → Data Sources → Web Source Modules.

Todos los metadatos se configuran en esta sección.

  1. Hacemos clic en el botón Create >
    • Seleccionamos “From scratch”
    • Click en el botón Next >
  2. En “General” ingresamos los siguientes datos:

3. En “Remote Server” verificamos la información:


Hacemos clic en el botón Next >


4. En Autenticación colocamos que “No ya que no necesitamos autenticarnos para usar la API


Hacemos clic en el botón Discover >


Se mostrará la previsualización de los metadatos:


Vemos las fichas Data y Columns. Si presionamos el botón “More Detail” Podemos visualizar que se agregaron las fichas: Operations, Response Body y Response Headers.

Finalmente creamos el Web Source presionando el botón “Create Web Source”.




Crear el Informe Clásico

Creamos una página en nuestra aplicación de tipo Reporte à Classic Report

Ingresamos el nombre de la página y seguimos el asistente.

Lo interesante aquí es cuando llegamos al paso donde tenemos que configurar el Report Source, en Apex 5.2 tenemos una nueva opción de configuración que se llama Data Source, seleccionamos Web Source, nos muestra todas las columnas que tenemos disponibles y luego creamos el reporte.



Al ejecutar el informe clásico en Apex podemos ver que las imágenes no se están mostrando.



Para que se muestren los posters de las películas, editamos el informe clásico desde el Diseñador de Páginas, seleccionamos la columna POSTER y en la sección Column Formating del panel de propiedades colocamos la etiqueta HTML <img> de la siguiente manera:

<img  src="#POSTER#" width="100">


Ahora ejecutamos la página y podemos visualizar el listado de películas que tienen en su título la palabra “tango”, mostrando la página “1” y el tipo es “movie”.

Hasta ahora, hemos creado, muy fácilmente, una página APEX que informa sobre un servicio REST externo. Pero el título de la película, la página y el tipo está realmente estático en nuestro módulo de fuente web. Por ello, ahora, vamos a modificar eso para que sea dinámico, es decir, el informe debería poder informar sobre cualquier título de película, página y tipo que quisiéramos.

Para eso, primero necesitamos agregar tres parámetros de fuente web a los metadatos en los componentes compartidos. Por lo tanto, vamos a Web Source Modules dentro de Componentes Compartidos y luego seleccionamos OMDb – The Open Movie Database.

Seleccionamos la ficha “Module Parameters”:

Creamos el primer parámetro:

  • Type: URL Pattern variable
  • Name: title
  • Value: tango (valor por defecto)
  • Direction: In
  • Static: No

Hacemos clic en el botón Add Parameter

Creamos el segundo parámetro:

  • Type: URL Pattern variable
  • Name: page
  • Value: 1 (valor por defecto)
  • Direction: In
  • Static: No

Hacemos clic en el botón Add Parameter

Creamos el tercer parámetro:

  • Type: URL Pattern variable
  • Name: type
  • Value: movie (valor por defecto)
  • Direction: In
  • Static: No

Hacemos clic en el botón Add Parameter



Una vez creados los tres parámetros veremos la lista de ellos en nuestro módulo de la fuente web.



Volvemos a los detalles del módulo haciendo clic en Show All para modificar el URL Path Prefix.

Actualmente está con valores estáticos:

URL Path Prefix: ?s=tango&page=1&type=movie&apikey=[miapikey]


Actualizamos a lo siguiente:

URL Path Prefix: ?s=:title&page=:page&type=:type&apikey=[miapikey]


Aplicamos los cambios.
Regresamos al Informe Clásico y agregamos una región estática con tres elementos de página:

Elemento P2_TITLE

  • Type: Text Field
  • Label: Título
  • Submit when Enter pressed: Yes
  • Column: 1
  • Column Span: 2
  • Default Type: Static Value = tango

Elemento P2_TYPE

  • Type: Select List
  • Label: Tipo
  • Start New Row: No
  • Column: Automatic
  • Column Span: 2
  • List of Values: Static Values
    • STATIC:Movie;movie,Series;series,Episode;episode
    • Display Extra Values: No
    • Display Null Values: No
  • Default Type: Static Value = movie

Elemento P2_PAGE

  • Type: Text Field
  • Label: Página
  • Submit when Enter pressed: Yes
  • Start New Row: No
  • Column: Automatic
  • Column Span: 2
  • Default Type: Static Value = 1

Creamos una acción dinámica que refresque la región Movies del informe clásico cuando cambia la selección del elemento P2_TYPE.

En el panel de presentación del informe clásico podemos ver un nodo nuevo de parámetros que muestra los parámetros que hemos creado: page, title y type, los cuales necesitamos que cada parámetro obtenga el valor a partir de nuestros elementos de página. Para ello seleccionamos el parámetro title y en la sección Value seleccionamos Type = Item y el Item = P2_TITLE.


Hacemos lo mismo para los elementos de página P2_PAGE y P2_TYPE.


Finalmente seleccionamos el informe clásico y en la sección Source enviamos los tres elementos a nuestro módulo de fuente web.


Guardamos los cambios y ejecutamos la página.


En nuestros parámetros seleccionamos, por ejemplo: Mickey, Movie, 2:


Realmente esta nueva funcionalidad de crear los servicios REST externos en forma declarativa es sumamente increíble! Te invito a que explores y pruebes diferentes fuentes de servicio REST y comentes tus descubrimientos sobre esta nueva característica que nos trae Oracle Application Express 5.2 Early Adopter.



Clarisa Maman Orfali es fundadora y CEO de ClarTech Solutions Inc. Se ha convertido en Oracle ACE hace algunos años, tiene más de 15 años de experiencia en el desarrollo y la capacitación en tecnologías de la información. Hace unos años descubrió la belleza de Oracle Application Express (APEX) y se ha especializado en esa área. Ella también es una Co-Fundadora y Directora del Argentina Oracle User Group (AROUG) y ha participado activamente en la organización de grandes y populares eventos. Ella tiene una gran pasión por las tecnologías de Oracle y quiere ampliar esa pasión e influencia transfiriendo su conocimiento y experiencia a la totalidad de las comunidades de Oracle América Latina y en todo el mundo.

Este artículo ha sido revisado por el equipo de productos Oracle y se encuentra en cumplimiento de las normas y prácticas para el uso de los productos Oracle.