Documentos de Académico
Documentos de Profesional
Documentos de Cultura
APEX RESTful Esp
APEX RESTful Esp
Copyright © 2020, Oracle y/o sus filiales. Oracle, Java y MySQL son marcas comerciales registradas de Oracle y/o sus filiales. Todos los demás nombres pueden ser marcas comerciales de sus
respectivos propietarios.
Laboratorio práctico: Uso de los servicios web RESTful en Oracle Application Express
Tema Detalles
Visión general En este laboratorio práctico, aprenderá sobre los
servicios web RESTful con actividades de clase
prácticas para permitir que un programa java se conecte
a una base de datos APEX.
Conceptos clave • Configuración del laboratorio de servicios web
RESTful de APEX.
• Recuperación, modificación y supresión de
datos mediante servicios RESTful.
• Creación de una aplicación APEX mediante un
servicio RESTful.
• Consumo del servicio web RESTful creado en
Application Express con un cliente Java.
Dificultad Avanzado
Duración Aproximadamente 180 minutos
Notas Los siguientes laboratorios brindan instrucciones paso a
paso para completar un escenario determinado y cubren
todo, desde temas básicos hasta temas más avanzados.
Copyright © 2020, Oracle y/o sus filiales. Oracle, Java y MySQL son marcas comerciales registradas de Oracle y/o sus filiales. Todos los demás nombres pueden ser marcas comerciales de sus
respectivos propietarios.
2
Introducción
En este tutorial se aborda la creación de un servicio web RESTful de forma declarativa mediante la herramienta SQL Workshop de
Oracle Application Express para conectarse a una tabla de base de datos y, a continuación, consumir el servicio mediante la creación
de una aplicación y la adición de una referencia de servicio web al servicio web RESTful. A continuación, se crea y se ejecuta un
programa java cliente que consumirá el servicio web RESTful para devolver los datos almacenados en una tabla de base de datos
APEX a la aplicación java.
Los servicios web permiten a las aplicaciones interactuar entre sí en la web en un entorno independiente del lenguaje y de la
plataforma. En un escenario típico de servicios web, una aplicación empresarial envía una solicitud a un servicio en una URL
determinada mediante el protocolo HTTP. El servicio recibe la solicitud, la procesa y devuelve una respuesta.
Una vez que haya definido un servicio web RESTful, lo podrá llamar con un identificador uniforme de recursos (URI) único. El servicio
web usa el URI para llamar a métodos del tipo GET, POST, PUT y DELETE.
Copyright © 2020, Oracle y/o sus filiales. Oracle, Java y MySQL son marcas comerciales registradas de Oracle y/o sus filiales. Todos los demás nombres pueden ser marcas comerciales de sus
respectivos propietarios.
3
Sección 1
3. Verifique que el esquema incluye la tabla EMP y los datos. Si el contenido ya se ha creado, pase a la siguiente sección.
Copyright © 2020, Oracle y/o sus filiales. Oracle, Java y MySQL son marcas comerciales registradas de Oracle y/o sus filiales. Todos los demás nombres pueden ser marcas comerciales de sus
respectivos propietarios.
4
4. Si la tabla EMP no existe, cree tanto esta como los datos manualmente. Seleccione SQL Commands.
5
Insert into EMP (EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO) values
(7566,'JONES','MANAGER',7839,to_date('02-APR-81','DD-MON-RR'),2975,null,20);
Insert into EMP (EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO) values
(7654,'MARTIN','SALESMAN',7698,to_date('28-SEP-81','DD-MON-RR'),1250,1400,30);
Insert into EMP (EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO) values
(7698,'BLAKE','MANAGER',7839,to_date('01-MAY-81','DD-MON-RR'),2850,null,30);
Insert into EMP (EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO) values
(7782,'CLARK','MANAGER',7839,to_date('09-JUN-81','DD-MON-RR'),2450,null,10);
Insert into EMP (EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO) values
(7788,'SCOTT','ANALYST',7566,to_date('19-APR-87','DD-MON-RR'),3000,null,20);
Insert into EMP (EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO) values
(7839,'KING','PRESIDENT',null,to_date('17-NOV-81','DD-MON-RR'),5000,null,10);
Insert into EMP (EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO) values
(7844,'TURNER','SALESMAN',7698,to_date('08-SEP-81','DD-MON-RR'),1500,0,30);
Insert into EMP (EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO) values
(7876,'ADAMS','CLERK',7788,to_date('23-MAY-87','DD-MON-RR'),1100,null,20);
Insert into EMP (EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO) values
(7900,'JAMES','CLERK',7698,to_date('03-DEC-81','DD-MON-RR'),950,null,30);
Insert into EMP (EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO) values
(7902,'FORD','ANALYST',7566,to_date('03-DEC-81','DD-MON-RR'),3000,null,20);
Insert into EMP (EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO) values
(7934,'MILLER','CLERK',7782,to_date('23-JAN-82','DD-MON-RR'),1300,null,10);
commit;
Sección 2
Copyright © 2020, Oracle y/o sus filiales. Oracle, Java y MySQL son marcas comerciales registradas de Oracle y/o sus filiales. Todos los demás nombres pueden ser marcas comerciales de sus
respectivos propietarios.
6
Servicio web RESTful de Oracle Academy
Copyright © 2020, Oracle y/o sus filiales. Oracle, Java y MySQL son marcas comerciales registradas de Oracle y/o sus filiales. Todos los demás nombres pueden ser marcas comerciales de sus
respectivos propietarios.
7
5. Si el esquema no está registrado con ORDS RESTful Data Services, haga clic en Register Schema with ORDS.
6. Cuadro de diálogo ORDS Schema Attributes (Nota: El nombre de su esquema será otro). Haga clic en Save Schema
Attributes.
Copyright © 2020, Oracle y/o sus filiales. Oracle, Java y MySQL son marcas comerciales registradas de Oracle y/o sus filiales. Todos los demás nombres pueden ser marcas comerciales de sus
respectivos propietarios.
8
7. Panel de control de ORDS RESTful Services:
Copyright © 2020, Oracle y/o sus filiales. Oracle, Java y MySQL son marcas comerciales registradas de Oracle y/o sus filiales. Todos los demás nombres pueden ser marcas comerciales de sus
respectivos propietarios.
9
Sección 3
1. El primer servicio web Restful recuperará todos los registros de la tabla EMP. Resalte Modules. Haga clic en el botón Create
Module.
2. Especifique el nombre oa_test en Module Name y /oa_test/ en Base Path. Cambie el tamaño de Pagination Size a 25. Haga
clic en “Create Module”.
Copyright © 2020, Oracle y/o sus filiales. Oracle, Java y MySQL son marcas comerciales registradas de Oracle y/o sus filiales. Todos los demás nombres pueden ser marcas comerciales de sus
respectivos propietarios.
10
4. Cree la plantilla de recursos empall/.
Copyright © 2020, Oracle y/o sus filiales. Oracle, Java y MySQL son marcas comerciales registradas de Oracle y/o sus filiales. Todos los demás nombres pueden ser marcas comerciales de sus
respectivos propietarios.
11
6. Cree el manejador de recursos. Introduzca la siguiente consulta en el área “Source”: SELECT * FROM emp Haga clic en
“Create Handler”.
7. Copie la URL del módulo. Asegúrese de que esté seleccionado el manejador de recursos GET y haga clic en el icono para
copiar la URL.
Copyright © 2020, Oracle y/o sus filiales. Oracle, Java y MySQL son marcas comerciales registradas de Oracle y/o sus filiales. Todos los demás nombres pueden ser marcas comerciales de sus
respectivos propietarios.
12
8. Pruebe el servicio web Rest desde el explorador web.
Pegue la URL en la barra de direcciones del explorador y pulse la tecla Intro para ver el resultado.
9. Seleccione GET, pegue la URL y haga clic en Send para probar el servicio web Rest desde Postman.
Copyright © 2020, Oracle y/o sus filiales. Oracle, Java y MySQL son marcas comerciales registradas de Oracle y/o sus filiales. Todos los demás nombres pueden ser marcas comerciales de sus
respectivos propietarios.
13
Sección 4
1. Realice los siguientes pasos para crear un servicio RESTful que recupere la información del empleado en función de un ID de
parámetro con el método HTTP GET.
2. En el módulo oa_test, cree una nueva plantilla emp/:empid siguiendo los pasos que aparecen en la sección anterior.
Copyright © 2020, Oracle y/o sus filiales. Oracle, Java y MySQL son marcas comerciales registradas de Oracle y/o sus filiales. Todos los demás nombres pueden ser marcas comerciales de sus
respectivos propietarios.
14
4. Pruebe el nuevo servicio web desde el explorador y agregue un número de empleado válido al final de la URL del esquema.
7839 es el número del empleado “King”.
Copyright © 2020, Oracle y/o sus filiales. Oracle, Java y MySQL son marcas comerciales registradas de Oracle y/o sus filiales. Todos los demás nombres pueden ser marcas comerciales de sus
respectivos propietarios.
15
5. Pruebe el nuevo servicio web desde Postman.
Copyright © 2020, Oracle y/o sus filiales. Oracle, Java y MySQL son marcas comerciales registradas de Oracle y/o sus filiales. Todos los demás nombres pueden ser marcas comerciales de sus
respectivos propietarios.
16
Sección 5
1. En esta sección, creará un servicio RESTful para insertar los datos con el método HTTP POST. Usará la herramienta
Postman para probar el servicio RESTful y verificar los resultados.
2. En la plantilla empall, cree un nuevo manejador POST.
BEGIN
INSERT INTO emp(EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO)
VALUES (:EMPNO,:ENAME,:JOB,:MGR,TO_DATE(:HIREDATE,'DD-MON-RR'),:SAL,:COMM,:DEPTNO);
htp.prn('employee no ' || :EMPNO || ' added successfully');
end;
Copyright © 2020, Oracle y/o sus filiales. Oracle, Java y MySQL son marcas comerciales registradas de Oracle y/o sus filiales. Todos los demás nombres pueden ser marcas comerciales de sus
respectivos propietarios.
17
4. En la herramienta Postman, para probar la solicitud POST, tenemos que definir Content-type en application/json. Haga clic en
el separador Headers bajo la barra de la URL. Bajo la cabecera KEY, introduzca Content-Type. Para VALUE, introduzca
application/json.
5. En la herramienta Postman, para probar la solicitud POST, haga clic en el separador Body, marque raw e introduzca el código
json que se muestra a continuación. Haga clic en Send.
Tenga en cuenta que la tabla EMP tiene una estructura diferente a la tabla EMPLOYEES incluida en el script de Oracle
Academy, los tamaños de columna son distintos. La columna “ename” de la tabla EMP tiene un tamaño máximo de 10, por lo
que, si la operación de inserción no se realiza correctamente, asegúrese de que no exceda el número máximo de caracteres
para esta columna.
Copyright © 2020, Oracle y/o sus filiales. Oracle, Java y MySQL son marcas comerciales registradas de Oracle y/o sus filiales. Todos los demás nombres pueden ser marcas comerciales de sus
respectivos propietarios.
18
6. Para comprobar la información del registro nuevo que ha insertado, use el manejador GET creado en la sección anterior, pero
agregue 124 al final de la URL.
Copyright © 2020, Oracle y/o sus filiales. Oracle, Java y MySQL son marcas comerciales registradas de Oracle y/o sus filiales. Todos los demás nombres pueden ser marcas comerciales de sus
respectivos propietarios.
19
Sección 6
1. En esta sección, creará un servicio RESTful para actualizar los datos con el método HTTP PUT. Usará la herramienta
Postman para probar el servicio RESTful y verificar los resultados.
3. Especifique el valor PUT en Method y el valor PL/SQL en Source Type. Proporcione el código fuente para PL/SQL.
Copyright © 2020, Oracle y/o sus filiales. Oracle, Java y MySQL son marcas comerciales registradas de Oracle y/o sus filiales. Todos los demás nombres pueden ser marcas comerciales de sus
respectivos propietarios.
20
4. Para realizar la prueba en Postman, seleccione PUT, introduzca la URL correcta y agregue /124, haga clic en el separador
Body, marque raw e introduzca el código json que se muestra a continuación. Haga clic en Send.
Copyright © 2020, Oracle y/o sus filiales. Oracle, Java y MySQL son marcas comerciales registradas de Oracle y/o sus filiales. Todos los demás nombres pueden ser marcas comerciales de sus
respectivos propietarios.
21
Sección 7
1. En esta sección, creará un servicio RESTful para suprimir los datos con el método HTTP DELETE. Usará la herramienta
Postman para probar el servicio RESTful y verificar los resultados.
3. Especifique el valor DELETE en Method y el valor PL/SQL en Source Type. Proporcione el código fuente para PL/SQL.
Copyright © 2020, Oracle y/o sus filiales. Oracle, Java y MySQL son marcas comerciales registradas de Oracle y/o sus filiales. Todos los demás nombres pueden ser marcas comerciales de sus
respectivos propietarios.
22
4. Para realizar la prueba en Postman, haga clic en el icono más para crear un separador nuevo.
5. Seleccione DELETE, introduzca la URL correcta y agregue /124. Haga clic en el separador Params. En KEY, introduzca
Content-Type y en VALUE introduzca application/json (tenga en cuenta que esta información se agregará automáticamente al
final de la URL). Haga clic en Send.
Copyright © 2020, Oracle y/o sus filiales. Oracle, Java y MySQL son marcas comerciales registradas de Oracle y/o sus filiales. Todos los demás nombres pueden ser marcas comerciales de sus
respectivos propietarios.
23
Sección 8
2. Cree una aplicación sencilla con la página inicial. Haga clic en Create, Create a New App.
3. Cree la aplicación EMP DISPLAY. Agregue el nombre EMP DISPLAY, acepte el resto de valores por defecto y haga clic en
Create Application.
Copyright © 2020, Oracle y/o sus filiales. Oracle, Java y MySQL son marcas comerciales registradas de Oracle y/o sus filiales. Todos los demás nombres pueden ser marcas comerciales de sus
respectivos propietarios.
24
4. Seleccione Shared Components.
Copyright © 2020, Oracle y/o sus filiales. Oracle, Java y MySQL son marcas comerciales registradas de Oracle y/o sus filiales. Todos los demás nombres pueden ser marcas comerciales de sus
respectivos propietarios.
25
6. Haga clic en el botón Create, seleccione From scratch y haga clic en Next.
7. Agregue el nombre y la URL del módulo empall que ha creado antes y haga clic en Next.
Copyright © 2020, Oracle y/o sus filiales. Oracle, Java y MySQL son marcas comerciales registradas de Oracle y/o sus filiales. Todos los demás nombres pueden ser marcas comerciales de sus
respectivos propietarios.
26
8. En el siguiente paso se dividirá automáticamente la URL de punto final en una parte específica del servidor y otra específica
del servicio. Haga clic en Next.
Copyright © 2020, Oracle y/o sus filiales. Oracle, Java y MySQL son marcas comerciales registradas de Oracle y/o sus filiales. Todos los demás nombres pueden ser marcas comerciales de sus
respectivos propietarios.
27
10. Se mostrarán los empleados de la tabla EMPS. Haga clic en Create Web Source.
11. Para volver a la página inicial de la aplicación, haga clic en el número de aplicación bajo el logotipo de Oracle APEX (su
número de aplicación será otro) y haga clic en el botón Create Page para agregar una nueva página.
Copyright © 2020, Oracle y/o sus filiales. Oracle, Java y MySQL son marcas comerciales registradas de Oracle y/o sus filiales. Todos los demás nombres pueden ser marcas comerciales de sus
respectivos propietarios.
28
12. Haga clic en Report.
14. Introduzca el valor 2 en Page Number y el valor EmpDetails en Page Name. Haga clic en Next.
Copyright © 2020, Oracle y/o sus filiales. Oracle, Java y MySQL son marcas comerciales registradas de Oracle y/o sus filiales. Todos los demás nombres pueden ser marcas comerciales de sus
respectivos propietarios.
29
15. Navigation Menu. Seleccione Create a new navigation menu entry, agregue EmpDetails como nombre y seleccione Home en
Parent Navigation Menu Entry. Haga clic en Next.
16. En Data Source, seleccione Web Source y elija el servicio APEX REST EMPALL. Haga clic en Create.
Copyright © 2020, Oracle y/o sus filiales. Oracle, Java y MySQL son marcas comerciales registradas de Oracle y/o sus filiales. Todos los demás nombres pueden ser marcas comerciales de sus
respectivos propietarios.
30
17. Aparece el diseño de página. Haga clic en el número de aplicación para volver a la página inicial de la aplicación.
Copyright © 2020, Oracle y/o sus filiales. Oracle, Java y MySQL son marcas comerciales registradas de Oracle y/o sus filiales. Todos los demás nombres pueden ser marcas comerciales de sus
respectivos propietarios.
31
19. Haga clic en el enlace de la opción de menú EmpDetails.
20. Los empleados de la tabla de base de datos EMP se muestran en la aplicación con el servicio web REST.
Copyright © 2020, Oracle y/o sus filiales. Oracle, Java y MySQL son marcas comerciales registradas de Oracle y/o sus filiales. Todos los demás nombres pueden ser marcas comerciales de sus
respectivos propietarios.
32
Sección 9
Consumo del servicio web RESTful creado en Application Express con un cliente Java
2. Cree un archivo de origen Java RESTEmp.java para recuperar los detalles del empleado 7782. Asegúrese de cambiar la URL
por la de su propio esquema. También podría crear, compilar y ejecutar el archivo java en un IDE como Eclipse o Netbeans.
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
33
try {
InputStream json = connection.getInputStream();
InputStreamReader isr = new InputStreamReader(json);
BufferedReader br = new BufferedReader(isr);
String line;
StringBuilder sb = new StringBuilder();
while ((line = br.readLine()) != null) {
sb.append(line);
}
System.out.println(sb);
} catch (Exception e) {
System.out.println("No se puede leer el objeto json");
}
}
4. Ejecute la clase RESTEmp para que se muestren los datos del empleado 7782.
Enhorabuena. Ha completado correctamente el laboratorio Uso de los servicios web RESTful en Application Express.
Copyright © 2020, Oracle y/o sus filiales. Oracle, Java y MySQL son marcas comerciales registradas de Oracle y/o sus filiales. Todos los demás nombres pueden ser marcas comerciales de sus
respectivos propietarios.
34