Documentación del API

Api Versión: 2.0

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

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

Conceptos de Recursos

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

Tipo

Descripción

Kubes de Reportes

Son los reportes que se arman en Kubes. Solo reportes son soportados, y este recurso solo permite acciones tipo GET.

Tablas de Kubes Store

Son las tablas creadas en el repositorio Kubes Store, estos recursos permite el uso de acciones GET y PUT.

Proyectos de Data Workshop

Son proyectos que cuentan con un flujo de ejecución para proyectos de machine learning u de datos.

Objetos de proyectos de Data Workshop

Se 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ón

Descripción

Ip Access

Aqui se define los IPs que tendran acceso para consumir el API usando el Token

Recursos Kubes

Se define los Recursos que son Reportes de Kubes; recuerde que este tipo de recurso solo permite acciones GET.

Recursos Kubes Store

Se define los Recursos que son tablas en su repositorio KStore, Este tipo de recursos permite acciones GET y PUT.

Access Type

Esto 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.datakubes.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"}]
}'
<?
$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.datakubes.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.datakubes.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:

Campo

Descripción

Valor Predefinido

Requerido

a

Token de autorización creado desde Seguridad / Api Tokens.

X

k

Token del recurso Kube ya sea Reportes o Tablas de Kube Store.

X

type

Para obtener debe llevar GET y escribir PUT.

X

results

Cantidad de registros a obtener.

Vacío equivale a 100.

page

Pá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.

filters

Array 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.

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

El API de DataKubes permite poder enviar datos a las tablas que residen en el repositorio de DataKubes. Estos repositorios le permite crear sus propios contenedores de datos en nuestra poderosa nube Analítica. Las tablas que residen en DataKubes 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.datakubes.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.datakubes.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:

Campo

Descripción

Requerido

a

Token de autorización creado desde Seguridad / Api Tokens.

X

k

Token del recurso Kube ya sea Reportes o Tablas de Kube Store.

X

type

Para enviar datos debe llevar POST.

X

payload

Array 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 DataKubes.

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

curl --location --request POST 'https://api.datakubes.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.datakubes.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.datakubes.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.datakubes.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


Did this page help you?