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"}],
"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.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. | |
orderby | A 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 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
Updated about 1 year ago