Para este laboratorio partiremos del hecho de ya saber como subir y presentar un imagen en una tabla en Oracle Apex, por lo que pasaremos al proceso de creación del servicio Restful.

Lo primero que debemos hacer es crear la tabla que contedrá nuestra imagenes:

Para esta ocasión usaré una tabla con los siguientes campos, los cuales son los únicos necesarios para cargar una imagen, más el ID_MENU que será nuestro identificador para llamar la imagen:

  • ID_MENU – NUMBER(10,0) – PRIMARY KEY
  • NOMBRE_IMAGEN – VARCHAR(100)
  • ARCHIVO_IMAGEN – BLOB
  • MIME_TYPE – VARCHAR(255)
  • CHARSET – VARCHAR(255)
  • LAST_UPDATE – DATE

Subimos nuestra imagen por medio de una pantalla de Apex y posterior a tener nuestro dato, procederemos a crear nuestro servicio restful.

Nota: Para crear nuestra API Rest debemos tener activado en nuestra instalación de Apex el schema de ORDS o bien si es en la nube lo debemos activar en el schema que estemos utilizando.

Iremos a SQL Workshop > RESTful Services

Seleccionamos Modules > Create Module, le colocaremos el nombre y base path a nuestra aplicación como se muestra en la siguiente imagen:

Luego presionamos Create Template:

En la siguiente parte crearemos nuestro parámetro que recibirá el url por id para elegir la imagen deseada.

  • El parámetro URl Template debe ir entre {}
  • HTTP Entity Tag Type en NONE

Guardamos los cambios y presionamos Create Handler:

Selecciomos el método GET y en Source Type en Media Resource ya que enviaremos una imagen por el request:

Source:

select mime_type, archivo_imagen from menu where id_menu = :id

Nota: Asegurese de no colocar ; al final de su query, de lo contrario no funcionará su API

Presionamos Create Handler y Apply Changes.

Ahora copiaremos nuestra url Full URL:

Abriremos una ventana en nuestro navegador y colocaremos el url enviando el id de la foto que queremos ver:

Este proceso puede sernos muy útil cuando necesitamos cargar imágenes de forma dinámica en Oracle Apex o bien si necesitamos tener un repositorio de imágenes y llamarlas desde una aplicación externa.

8 respuestas a «Cómo crear un API Restful en Oracle APEX que nos devuelva una imagen en su request»

  1. 500 Internal Server Error
    2021-10-27T07:08:32.512Z | d40ca4d86fe5c3fd176bbb2afe605a5b
    Se ha producido un error inesperado con el siguiente mensaje: «nombre_de_la_imagen». 🙁

    1. No se si sea la razón del problema, en la sentencia select solo estaba llamando al campo de la imagen, y su nombre o descripción, no estaba llamando al tipo de imagen. 🙁

  2. Hola buenas, llegue a este tutorial porque estoy creando un sistema REST, esta muy bien la página pero si te fijas al tabular desde el principio de la url sale un botón oculto que sale por defecto en apex, para quitarlo simplemente en el css tienes que poner:
    #t_Body_skipToContent{
    display: none;
    }
    Espero que el consejo te sirva, gracias por el tutorial!

  3. hola muy buen aporte, como podría recibir una imagen en un servicio post? alguna idea de como lo podría hacer? gracias de antemano.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *