Documentación del API

Api Versión: 2.0

Este documento explica con ejemplos el uso del API de ARPIA.

Este API permite realizar consultas, y agregar información a los recursos que están en su cuenta de ARPIA.

Conceptos de Recursos

Los recursos de los Kubes que se consumen por medio del API, es decir, los tipos de recursos, son los siguientes.

TipoDescripción
Kubes de ReportesSon los reportes que se arman en Kubes. Solo reportes son soportados, y este recurso solo permite acciones tipo GET.
Tablas de Kubes StoreSon las tablas creadas en el repositorio Kubes Store, estos recursos permite el uso de acciones GET y PUT.
Proyectos de Data WorkshopSon proyectos que cuentan con un flujo de ejecución para proyectos de machine learning u de datos.
Objetos de proyectos de Data WorkshopSe puede ejecutar específicamente objetos dentro de los proyectos de Workshop.

Los recursos requieren ser autorizados en la sección de cada token de acceso.

Manejo de Tokens

Los tokens son los códigos o llaves de accesos para poder consumir los recursos en su cuenta de Kube. Los tokens se deben crear en la sección de Seguridad / Api Tokens, donde se debe tipificar los siguientes valores que regulan el acceso al token.

ConfiguraciónDescripción
Ip AccessAqui se define los IPs que tendran acceso para consumir el API usando el Token
Recursos KubesSe define los Recursos que son Reportes de Kubes; recuerde que este tipo de recurso solo permite acciones GET.
Recursos Kubes StoreSe define los Recursos que son tablas en su repositorio KStore, Este tipo de recursos permite acciones GET y PUT.
Access TypeEsto define los tipos de acciones que puede realizar el Token a los recursos asignados.

Se pueden crear todos los Tokens que requiera para controlar los accesos a los diferentes recursos.

Accediendo al API

GET Obtener Datos del Kube

A continuación, ejemplos sobre cómo se puede utilizar el API en código de PHP y CURL:

Modelo de autenticación embebido en el Payload del POST.

curl --location --request POST 'https://api.arpia.com' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-raw '{
"a":"9c1acab8433828973a8c4a86ea166345-werw-isqycvrn",
"k":"7c34083fefa8e201cd90e0f509ae69d6",
"type":"GET",
"results":1,
"filters":[{"field":"Date","type":">=", "value":"2020-01-01"}, {"field":"Date","type":"<=", "value":"2020-01-01"}],
"orderby":[{"field":"Date", "type":"<ASC/DESC>"}]
}'
<?
$curl = curl_init();

curl_setopt_array($curl, array(
CURLOPT_URL => "https://kubes.enx.one/api/kube/v2/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS =>"{"a":"9c1acab8433828973a8c4a86ea166345-werw-isqycvrn","k":"7c34083fefa8e201cd90e0f509ae69d6",\n\"type\":\"GET\",\n\"results\":1,\n\"filters\":[{\"field\":\"Date\",\"type\":\">=\", \"value\":\"2020-01-01\"}, {\"field\":\"Date\",\"type\":\"<=\", \"value\":\"2020-01-01\"}]\n}",
CURLOPT_HTTPHEADER => array(
"Content-Type: application/x-www-form-urlencoded"
),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
?>

Modelo de autenticación directa en el URL

En algunos casos es necesario colocar las credenciales directas como variables de URL para permitir mayor facilidad de integración, esto se puede realizar como los ejemplos a continuación:

❗️

¡Aviso de Seguridad!

Este modelo de integración es considerado no seguro. Sin embargo, recuerde que se controla el acceso por medio de IP.

curl --location --request GET 'https://api.arpia.com/?a=9c1acab8433828973a8c4a86ea166345-werw-isqycvrn&k=974f80d4160def16dd86e38bac5079d5&type=GET&results=10&filters[0][field]=Date&filters[0][type]=>=&filters[0][value]=2020-01-01&filters[1][field]=Date&filters[1][type]=<=&filters[1][value]=2020-01-31'
<?

$curl = curl_init();

curl_setopt_array($curl, array(
CURLOPT_URL => "https://api.arpia.com/?a=9c1acab8433828973a8c4a86ea166345-werw-isqycvrn&k=974f80d4160def16dd86e38bac5079d5&type=GET&results=10&filters[0][field]=Date&filters[0][type]=>=&filters[0][value]=2020-01-01&filters[1][field]=Date&filters[1][type]=<=&filters[1][value]=2020-01-31",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

?>

A continuación la explicación de los parámetros permitidos:

CampoDescripciónValor PredefinidoRequerido
aToken de autorización creado desde Seguridad / Api Tokens.X
kToken del recurso Kube ya sea Reportes o Tablas de Kube Store.X
typePara obtener debe llevar GET y escribir PUT.X
resultsCantidad de registros a obtener.Vacío equivale a 100.
pagePágina que desea obtener según los resultados solicitados, por ejemplo en un results=5 page=3 mostrará los 5 siguientes registros despues del registro 10.Vacío equivale 1.
filtersArray JSON con los filtros que se desea aplicar en el caso del modelo Payload o Array de variables URL Get en el caso de integración directa.Vacío sin filtros.
orderbyA JSON array with the fields and order by type to be applied. This option lets user control de data order to be displayed in every page result response.Vacío sin ordenamiento y solo se aceptan campos validos y ordenamiento de tipo ASC o DESC.

POST Enviar Datos a Recursos de Tabla en sus Repositorios en ARPIA

El API de ARPIA permite poder enviar datos a las tablas que residen en el repositorio de ARPIA. Estos repositorios le permite crear sus propios contenedores de datos en nuestra poderosa nube Analítica. Las tablas que residen en ARPIA permiten acceso a complejas consultas y procesamiento de datos en tiempo real.

A continuación ejemplos de cómo se puede utilizar el API en código de PHP y CURL para realizar un POST:

curl --location --request POST 'https://api.arpia.com' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-raw '{
"a":"9c1acab8433828973a8c4a86ea166345-werw-isqycvrn",
"k":"7c34083fefa8e201cd90e0f509ae69d6",
"type":"POST",
"payload":[
			{"field_1":"value_1", "value_2":"value_1", "field_3":"value_2"},
			{"field_1":"value_2", "field_2":"value_2", "field_3":"value_2"},
			{"field_1":"value_3", "field_2":"value_3", "field_3":"value_3"}
		]
}'
<?
$curl = curl_init();

curl_setopt_array($curl, array(
CURLOPT_URL => "https://api.arpia.com",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS =>"{"a":"9c1acab8433828973a8c4a86ea166345-werw-isqycvrn","k":"7c34083fefa8e201cd90e0f509ae69d6",\n\"type\":\"GET\",\n\"results\":1,\n\"payload\":[{"field_1":"value_1", "field_2":"value_2", "field_3":"value_3"},{"field_1":"value_1", "field_2":"value_2", "field_3":"value_3"},{"field_1":"value_1", "field_2":"value_2", "field_3":"value_3"},{"field_1":"value_1", "field_2":"value_2", "field_3":"value_3"}]\n}",
CURLOPT_HTTPHEADER => array(
"Content-Type: application/x-www-form-urlencoded"
),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
?>

📘

Se puede enviar en batch varios registros para ser insertados a la vez. En el ejemplo anterior se observan el envío de 3 registros a la vez.

A continuación la explicación de los parámetros enviados:

CampoDescripciónRequerido
aToken de autorización creado desde Seguridad / Api Tokens.X
kToken del recurso Kube ya sea Reportes o Tablas de Kube Store.X
typePara enviar datos debe llevar POST.X
payloadArray JSON compuesto con todos los registros y campos que desea insertar al Recurso.X

❗️

Errores en Nombre de Campos

Los campos deben ser enviados de la forma que están creados en la tabla en el repositorio. En caso de que un campo no esta nombrado correctamente o no existe el mismo enviara un error en el API.

🚧

Llaves Primarias

En caso que la tabla destino en el repositorio cuente con una llave primaria y existe datos enviados en el API el mismo remplazara los datos de dicho registro único.

📘

Registros con Campos incompletos!

En caso que envíe un registro de datos donde no todos los campos o columnas están contenidos en el payload enviado al API los mismos serán llenados con valores predefinidos, null o vacíos según cómo se haya configurado en la tabla.

WebHook Relays - Modelo Middleware (Beta Invite Only)

Además de permitir ingresar datos a los recursos en Kubes Store, nuestra plataforma le permite reenviar los registros ingresados por API a estos recursos ser enviados en copia a otros URLs configurados en el recurso. Permitiendo utilizar Kubes como un middleware fácil y simple de implementar.

Ejecución de proyectos y sus objetos en Data Workshop

Podrás ejecutar los objetos y proyectos completos en Data Workshop usando el api de ARPIA.

Para ejecutar un proyecto completo en el orden que están configurados se utiliza el siguiente API Endpoint:

curl --location --request POST 'https://api.arpia.com' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-raw '{
"a":"9c1acab8433828973a8c4a86ea166345-werw-isqycvrn",
"k":"7c34083fefa8e201cd90e0f509ae69d6",
"type":"POST",
"payload":[
			{"field_1":"value_1", "value_2":"value_1", "field_3":"value_2"},
			{"field_1":"value_2", "field_2":"value_2", "field_3":"value_2"},
			{"field_1":"value_3", "field_2":"value_3", "field_3":"value_3"}
		]
}'
<?
$curl = curl_init();

curl_setopt_array($curl, array(
CURLOPT_URL => "https://api.arpia.com",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS =>"{"a":"9c1acab8433828973a8c4a86ea166345-werw-isqycvrn","k":"7c34083fefa8e201cd90e0f509ae69d6",\n\"type\":\"GET\",\n\"results\":1,\n\"payload\":[{"field_1":"row_1", "field_2":"row_1", "field_3":"row_1"},{"field_1":"row_2", "field_2":"row_2", "field_3":"row_2"},{"field_1":"row_3", "field_2":"row_3", "field_3":"row_3"}]\n}",
CURLOPT_HTTPHEADER => array(
"Content-Type: application/x-www-form-urlencoded"
),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
?>

Para ejecutar uno o multiples objeto de un proyecto en especifico puede proceder con el siguiente API Endpoint:

curl --location --request POST 'https://api.arpia.com' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-raw '{
"a":"9c1acab8433828973a8c4a86ea166345-werw-isqycvrn",
"k":"7c34083fefa8e201cd90e0f509ae69d6",
"type":"POST",
"payload":[
			{"field_1":"value_1", "value_2":"value_1", "field_3":"value_2"},
			{"field_1":"value_2", "field_2":"value_2", "field_3":"value_2"},
			{"field_1":"value_3", "field_2":"value_3", "field_3":"value_3"}
		]
}'
<?
$curl = curl_init();

curl_setopt_array($curl, array(
CURLOPT_URL => "https://api.arpia.com",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS =>"{"a":"9c1acab8433828973a8c4a86ea166345-werw-isqycvrn","k":"7c34083fefa8e201cd90e0f509ae69d6",\n\"type\":\"GET\",\n\"results\":1,\n\"payload\":[{"field_1":"row_1", "field_2":"row_1", "field_3":"row_1"},{"field_1":"row_2", "field_2":"row_2", "field_3":"row_2"},{"field_1":"row_3", "field_2":"row_3", "field_3":"row_3"}]\n}",
CURLOPT_HTTPHEADER => array(
"Content-Type: application/x-www-form-urlencoded"
),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
?>

Para obtener el token del proyecto