Taller sobre Integración de Aplicaciones

Por David Peake

Utilizar servicios Web con Oracle Application Express

Casi todos los sitios Web líderes, de Amazon y eBay a Facebook y Google, cuentan actualmente con una oferta de servicios Web. Los servicios Web permiten que las aplicaciones interactúen entre sí mediante la Web en un entorno neutral en cuanto a la plataforma y de lenguaje independiente. En un escenario típico de servicios Web, una aplicación de negocios envía una solicitud a un servicio en una determinada URL, utilizando HyperText Transfer Protocol (HTTP). El servicio recibe la solicitud, la procesa y devuelve una respuesta.

Oracle Application Express ha soportado la integración de servicios Web en varias versiones, pero con Oracle Application Express 3.0, ese soporte ha sido mejorado—por ejemplo, ahora se soportan los servicios Web de estilo documento. Oracle Application Express 3.0 también permite la creación manual de referencias de servicios Web. Esta columna muestra cómo crear referencias de servicios Web manualmente, utilizando una de las API de servicios Web de YouTube.

Fíjese que debe crear este ejemplo en su propia instancia de Oracle Application Express—el sitio apex.oracle.com no brinda soporte para las llamadas de red externas, de manera que no puede utilizarse para este proyecto.

Generalidades

Oracle Application Express 3.0 ofrece dos enfoques para agregar servicios Web a una aplicación:

  • Generar referencias de servicios Web utilizando un wizard para crear automáticamente mensajes de solicitud Simple Object Access Protocol (SOAP) válidos con parámetros de entrada, parámetros de salida y operaciones especificadas, sobre la base de Web Services Description Language (WSDL).
  • Crear referencias de servicios Web manualmente. Primero, examine WSDL, y luego cree SOAP para la solicitud. En general, necesitará una herramienta SOAP para ayudar a determinar SOAP, pero en esta aplicación de muestra, los detalles para las API XML-RPC son ofrecidos por el sitio YouTube.


Ejemplo del Servicio Web Estilo XML-RPC de YouTube

YouTube ( www.youtube.com) ofrece acceso a varias áreas de su repositorio de video mediante una interface API abierta que permite integrar fácilmente el contenido de YouTube en una aplicación. Las API de YouTube permiten obtener información sobre videos y obtener videos por nombre o nombre de usuario. Para este proyecto de aplicaciones de muestra, usted obtendrá solo videos de música y los desplegará en un formato estilo informe. Las API de servicios Web de YouTube están en formato Representational State Transfer (REST) y XML-RPC. Este ejemplo describe cómo crear una aplicación Oracle Application Express que interactúe con la API de servicios Web XML-RPC de los videos de música YouTube.

Para utilizar las API de YouTube, usted debe tener una cuenta YouTube (es gratuita) y debe obtener un ID de desarrollador (también gratuito). Su ID de desarrollador está incluido en el documento de solicitud XML-RPC y se envía con cada solicitud a la API. Para obtener su ID de desarrollador y cuenta, visite www.youtube.com/dev.

El proyecto de aplicaciones de muestra consta de los siguientes pasos:

Paso 1: Crear una aplicación Oracle Application Express
Paso 2: Crear una referencia Web manual
Paso 3: Probar la referencia Web
Paso 4: Crear un proceso para asociarlo con el servicio Web
Paso 5: Extraer el documento XML incorporado
Paso 6: Crear un informe sobre la referencia Web manual
Paso 7: Perfeccionar el informe

Paso 1: Crear una aplicación. Antes de crear la referencia Web manual en el servicio Web XML-RPC de videos de música YouTube, debe crear una aplicación en Oracle Application Express.

1. Ingrese a su espacio de trabajo Oracle Application Express.
2. Seleccione Crear Aplicación en el menú de Creación de Aplicaciones para lanzar el wizard Crear Aplicación.
3. Ingrese un nombre para la aplicación, como SimpleVideoService.
4. Haga click en Siguiente para continuar. Aparece la opción Agregar Página.
5. Seleccione el estilo de página en blanco, y agregue una página en blanco a la aplicación. Deje los valores por defecto, y haga click en Siguiente para transitar el wizard y terminar de crear la aplicación.

Si su instancia Oracle Application Express requiere un servidor proxy para llegar a las páginas en internet, usted debe definir el servidor proxy en Definición de Aplicaciones (Shared Components -> Application -> Definition).

Paso 2: Crear una referencia Web manual. Para crear una referencia Web manual, ingrese la URL en el servicio Web y defina el documento a enviar. Los resultados se almacenarán en un grupo, que definirá en los pasos de abajo. Para crear una referencia Web manual:

1. Haga click en Componentes Compartidos.
2. Haga click en Referencias de Servicios Web.
3. Haga click en Crear. Se inicia el wizard Crear Referencia de Servicios Web, y despliega el mensaje "¿Quiere buscar un registro UDDI para encontrar el WSDL?"
4. Seleccione No, y haga click en Siguiente. Aparecen los campos para credenciales de autenticación y ubicación WSDL. Ignórelos.
5. En la región Tareas en la sección derecha de la página, haga click en Crear Referencia de Servicios Web Manualmente para abrir una página de propiedades de Crear/Editar Servicio Web, con regiones para el nombre del servicio Web, descripción del servicio, definición SOAP y respuesta SOAP. Ingrese los detalles que se muestran en la Lista 1.

Lista de Código 1: Propiedades de servicios Web.

Name:   YouTube Music Videos
URL:        http://www.youtube.com/api2_xmlrpc
SOAP Envelope:

<?xml version='1.0'?>
  <methodCall>
  <methodName>youtube.videos.list_by_category_and_tag</methodName>
      <params>
          <param><value><struct>
              <member>
                  <name>dev_id</name>
                  <value><string>YOUR_DEV_ID</string></value>
              </member>
              <member>
                  <name>category_id</name>
                  <value><int>10</int></value>
              </member>
              <member>
                  <name>tag</name>
                  <value><string></string></value>
              </member>
              <member>
                  <name>per_page</name>
                  <value><int>5</int></value>
              </member>
          </struct></value></param>
      </params>
  </methodCall>


Store Response in Collection: YOUTUBE_MUSIC_VIDEOS


6. Haga click en Crear. Aparece el componente de Videos de Música YouTube en la página de Referencias de Servicios Web.
7. Haga click en el componente de Videos de Música YouTube para seleccionarlo para su prueba (en el próximo paso).


Paso 3: Pruebe la referencia Web. Para probar la referencia Web manual que creó para la lista de videos de música de YouTube, debe tener seleccionado el componente en la página de Referencias de Servicios Web:

1. Seleccione Detalles de la lista Ver, y luego haga click en Ir. Aparece el componente en una tabla justo debajo de la fila de selección.
2. Haga click en el ícono Probar al lado de la referencia Videos de Música YouTube. Aparece una página de Respuesta y SOAP Envelope.
3. Haga click en Probar.
4. Vea la respuesta en el área Texto Resultante.

La sección de respuesta despliega la respuesta XML-RPC, una cadena que contiene un documento XML autónomo, con escape. El documento XML incorporado contiene la información sobre los videos de música. (En el paso 5, verá cómo hacer para que el contenido esté sin escape, para que se despliegue adecuadamente en un informe).

Paso 4: Crear un proceso para asociarlo con el servicio Web. Ahora que ya ha creado la referencia de servicio Web, debe invocarla desde su aplicación. Para crear el proceso que invoca la referencia Web:

1. Navegue hasta la definición de la página 1.
2. Haga click en el ícono más (+) en la sección Procesos de Presentación de Página.
3. Seleccione Servicios Web para la categoría del proceso, y haga click en Siguiente.
4. Ingrese Call YouTube Music Video Service en el campo Nombre, y haga click en Siguiente.
5. Seleccione los Videos de Música de YouTube desde la lista de Referencia de Servicios Web, y haga click en Siguiente.
6. Deje el área de mensajes en blanco, y haga click en Siguiente.
7. Haga click en Crear Proceso.


Paso 5: Extraiga el documento XML. La API de Videos de Música YouTube devuelve una cadena (una respuesta XML-RPC) que contiene un documento XML autónomo con escape con el resultado de la llamada de la API: la lista de videos de música. (Cuando el XML no está fugado, el resultado es el mismo como respuesta a una llamada REST.) Usted quiere que la aplicación reporte sobre este resultado, entonces ahora cree un proceso que extraiga el documento y elimine el escape del XML. El proceso también actualiza el grupo utilizado para almacenar la respuesta con el valor del documento extraído. Para crear un proceso que extraiga el documento XML:

1. Haga click en el ícono más (+) en la región Procesos de Presentación de Página.
2. Seleccione PL/SQL de la lista Categoría del Proceso, y haga click en Siguiente.
3. Ingrese Extract Embedded Document en el campo Nombre.
4. Ingrese 20 en el campo Secuencia, y haga click en Siguiente.
5. Ingrese el código de la Lista 2 en el área de texto Ingresar Proceso de Página PL/SQL.


Lista de Código 2: Código PL/SQL que procesa el XML

declare
    l_clob clob;
    l_xml xmltype;
    l_val clob;
begin
    for c1 in (select clob001
                  from apex_collections
                  where collection_name = 'YOUTUBE_MUSIC_VIDEOS'
                 ) loop
        l_clob := c1.clob001;
        exit;
    end loop;

    l_xml := xmltype.createxml(l_clob);

    l_val := dbms_xmlgen.convert(l_xml.extract('/methodResponse/params/param/value/
string/text()').getclobval(),1);

    apex_collection.update_member_attribute(
       p_collection_name  => 'YOUTUBE_MUSIC_VIDEOS',
       p_seq                    => '1',
       p_clob_number       => '1',
       p_clob_value          => l_val );
end;

6. Deje el área de mensajes en blanco, y haga click en Siguiente.
7. Seleccione PL/SQL de la lista Tipo de Condición.
8. Haga click en Crear Proceso.

Paso 6: Cree un informe sobre la referencia Web manual. Para desplegar el resultado de la referencia de servicios Web, cree un reporte utilizando el wizard "Crear Reporte en un Servicio Web Manual". Para este paso, debe proporcionar información sobre la estructura del documento de respuesta XML. Para crear un reporte de un servicio Web manual:

1. Haga click en el ícono más (+) en el área Regiones de la Presentación de Página.
2. Seleccione Reporte en la lista Tipo de Región, y haga click en Siguiente.
3. Seleccione Reporte en el grupo que contiene el resultado del servicio Web, y haga click en Siguiente.
4. Ingrese Music Videos en el campo Título, y haga click en Siguiente.
5. Seleccione Creado Manualmente de la Referencia Web y haga click en Siguiente. Aparecen varios campos de ingreso para definir el estilo SOAP y el formato del mensaje. Complete los campos de la siguiente manera:

De la lista Referencia de Servicios Web, seleccione Videos de Música de YouTube.
Para el estilo SOAP, seleccione RPC.
Deje el Espacio de Nombre del Mensaje en blanco, y haga click en Siguiente.
Para Ruta de Nodo Resultante, ingrese /video_list/video.
Para Nombres de Parámetro, ingrese los siguientes nombres:


title
author
rating_avg
description
url
thumbnail_url
6. Haga click en Aplicar Cambios.
7. Desmarque el casillero Mostrar en la fila de la columna url.
8. Haga click en el ícono Mover Arriba en la fila de la columna thumbnail_url hasta que aparezca directamente después de la columna título.
9. Haga click en Aplicar Cambios.

Ejecute la página para ver sus mejoras. La Figura 1 muestra un resultado de muestra.

Figura 1

Conclusión

Oracle Application Express permite crear aplicaciones que se integran con otras aplicaciones en otras plataformas, al soportar el consumo de servicios Web. Facilita la creación de aplicaciones basadas en Servicios Web estilo XML-RPC como la API de Videos de Música de YouTube.


David Peake ( david.peake@oracle.com) es gerente principal de productos en la división de Tecnologías de Servidor de Oracle. Trabaja con Oracle desde 1993.