¿Cómo crear un API REST con una custom query y procesado?

ES | EN

Intro

En este tutorial vamos a ver cómo crear un método en un API REST con parámetros y con un postprocesado.

Crear API

Para el ejemplo usaremos la ontología pública HelsinkiPopulation.

Para esto:

  1. Accederemos al ControlPanel del Entorno CloudLab con mi usuario Developer:  https://lab.onesaitplatform.com/controlpanel

  2. Iremos a la sección My APIS en el menú DEVELOPMENT y seleccionaré CREAR API

  3. En los datos del API seleccionaremos como ontología HelsinkiPopulation:

   

Crear QUERY para el API

4. Luego en las Operaciones marcaremos 

QUERY (CUSTOM) para crear una operación a medida

   

   Como estamos trabajando con la ontología HelsinkiPopulation que nos da la población en Helsinki por años (podemos verlo yendo a la Query Tool):

   

   Haremos un método que nos devuelve la población pasándole el año como parámetro. La query sería:

   

  1. Volvemos a la operación y completamos los datos de la operación, para pasar como parámetro el año lo marcaremos así {$year}

   

   La plataforma nos pedirá el tipo de dato del parámetro y si se trata de una query en SQL:

   

Invocar API

  1. Esto ya nos permite invocarla con un User Token. Podemos sacar el User Token desde la opción .

   

   Para invocarla, seleccionaremos la opción SWAGGER:

  Marcaremos HTTPS en la invocación:

  

  Seleccionaremos el método:

  

  y daremos   . Esto nos pedirá el User Token y el año:

   

   Al invocarlo, obtendremos los resultados:

   

Añadir Procesado a API

  1. Ahora vamos a ver cómo añadir un postprocesado a este método. Para eso editaremos el método del API:

   

  y habilitaremos el Proceso seleccionando  . Esto habilitará el procesado del método en JavaScript (vía Nashorn).

  Los datos resultados de la invocación al método se devuelven en un atributo llamado data y debemos acabar devolviendo un String. Se genera un procesado de ejemplo.

  

  Modificaremos este proceso para quedarnos sólo con el año y el population, eliminando el elemento raíz:

  

Al volver a invocar al API, ahora obtendremos: