¿Cómo crear un informe que extraiga datos de una API REST?
Introducción
A través de esta guía vamos a explicar cómo crear un Informe que extraiga datos de una API REST para rellenar un Informe en tiempo de ejecución.
Crear una plantilla de Informe Jasper con TIBCO JasperSoft Studio
Vamos a modelar un termómetro que trazará datos recuperados de una API REST JSON de la Plataforma Onesait.
La entrada JSON (campos) tendrá el siguiente formato:
{
"title": "Germany June",
"value": -10,
"rangeMin": -40,
"rangeMax": 50,
"firstSubRangeMin": 0,
"firstSubRangeMax": 0,
"secondSubRangeMin": 15,
"secondSubRangeMax": 15,
"thirdSubRangeMin": 50,
"thirdSubRangeMax": 50
}
Los campos están definidos en la plantilla:
Ahora, la fuente de datos JSON de entrada será nuestra API, por lo que tenemos que añadir las siguientes líneas al XML:
(Cómo añadir una fuente de datos JSON mediante programación: http://jasperreports.sourceforge.net/sample.reference/jsondatasource/)
(Cómo añadir una fuente de datos/data source JSON visualmente: https://www.youtube.com/watch?v=UG1RU393FtE)
Se necesita un parámetro "net.sf.jasperreports.json.source" en el XML para poder extraer los datos.
Aquí tienes el ejemplo completo: thermometer.jrxml
Subir la plantilla
Ahora vamos a la consola web a subir la plantilla:
Entonces hacemos clic en "Crear":
Rellenamos los datos, subimos el .jrxml y pulsamos en 'Nuevo'.
Crear la ontología
Tenemos que crear la ontología con la estructura de datos antes mencionada.
Vamos a Herramientas de Importación de Datos:
Pegamos el JSON en el área de texto:
{
"title": "Germany June",
"value": -10,
"rangeMin": -40,
"rangeMax": 50,
"firstSubRangeMin": 0,
"firstSubRangeMax": 0,
"secondSubRangeMin": 15,
"secondSubRangeMax": 15,
"thirdSubRangeMin": 50,
"thirdSubRangeMax": 50
}
Con ambas casillas marcadas (nueva ontología, e Importar datos a la RTDB), hacemos clic en 'Enviar', rellenamos los datos de entrada, y por último hacemos clic otra vez en 'Enviar':
Cuando se haya creado, se nos redirigirá a la página de la ontología:
Crear el API
Ahora que hemos creado la capa del modelo, y cargado una muestra json (en el momento de la importación), estamos listos para crear nuestra API.
Vamos a APIs y hacemos clic en 'Create'.
Creamos la API seleccionando la ontología que acabamos de crear, y activamos la operación 'GET (ALL)':
Por último, hacemos clic en 'Crear'.
Guardamos nuestra 'base endpoint' (http://<platform_instance>/api-manager/server/api/v1/Thermometer) y también nuestra Clave API de usuario, porque las necesitaremos para ejecutar el informe.
La clave de la API se puede encontrar en la pantalla de APIs, haciendo clic en 'Tokens de usuario':
Ejecutar el informe
Por último, sólo tenemos que ejecutar el informe, rellenando los parámetros necesarios.
Volvemos a la página de Informes, buscamos 'Thermometer' y hacemos clic en 'Generar':
Aparecerá una ventana para rellenar los parámetros:
Nos aseguramos de marcar las casillas (lado izquierdo, 'Enviar parámetros') para enviar los parámetros al informe.
Hacemos clic en 'Generar', y el PDF generado se descargará.
En este caso estamos representando datos de Polonia: