Una API no es más que un estandar de entrega y recepción de datos definido por una aplicación para permitir la interacción con otras aplicaciones.
La API de OBUMA te permitirá obtener, enviar y actualizar datos desde y hacia OBUMA via HTTP y JSON. Con la API es muy facil desarrollar aplicaciones web, desktop y moviles que interactuen con OBUMA.
Algunas ideas interesantes a desarrollar con la API son:
Sobre la Autenticacion
Para acceder a la API solo hace falta tener una cuenta cliente de OBUMA ERP y un access-token. La API de OBUMA no es GRATIS, se cobra como un super usuario, tiene un costo asociado que debes consultar a nuestro departamento comercial.
El access-token debe ser enviado en una variable via header.
La API es del tipo REST y utiliza JSON para el envío y recepción de información.
REQUEST HEADER API v1.0
content-type:application/json
access-token: API-KEY-OBUMA
La version 1.0 admite una sola APIKEY para una empresa.
REQUES HEADER API v2.0
content-type:application/json
access-token: API-KEY-OBUMA
access-url: API-ACCESS-URL or CLIENT URL
La version 2.0 admite multiples APIKEY y control de acceso a los endpoints por APIKEY, cada APIKEY creada tiene costo.
Sobre las URLs ( Endpoints ) :
La API consta de diversas URLs que ejecutan determinadas tareas, en dependencia de la url invocada.
Actualmente existen 5 URL principales, o mas comunes:
list : Entrega una lista de elementos de entidad determinada (clientes, proveedores, empleados, etc...)
findById : Devuelve una entidad determinada por el ID entregado.
create : Crea una entidad nueva.
update : Actualiza una entidad con los datos entregados.
delete : Elimina una entidad. Normalmente en OBUMA no se pueden eliminar entidades, por lo cual los modulos que tengan permitida esta funcion lo mostraran en su lista de funciones.
Para ocupar la api, debes invocar la URL de la API + METODO + RECURSO
URL BASE de la API : https://api.obuma.cl/v1.0
METODO + RECURSO : /productosCategorias.list.json
Ejemplo : https://api.obuma.cl/v1.0/productosCategorias.list.json
Esta url (endpoint) nos entrega una lista de todas las categorias de productos de una empresa determinada.
Debes obtener un access token: *** Entregado por OBUMA *** El access token debe ser resguardado como cualquier otra clave, y su uso es entera responsabilidad del cliente.
Sobre el retorno de datos :
Todos los enpoints tienen un límite diario de 1.000 consultas, se debe tener en cuenta esta limitación a la hora de planificar los consumos de recursos.
Todas las consultas a la API devuelven una serie de variables con datos. Los datos devueltos son en formato JSON.
Todas las consultas, tienen un limite maximo de retorno de 1000 items o rows. OJO, este límite no se puede aumentar, y en ciertos modulos especificos puede ser menor a 1000.
{
"data-actual-total": 1,
"data-actual-limit": 100,
"data-actual-page": 1,
"data-total-items": 1,
"data-total-pages": 1,
"data": [
{
"venta_id": "2943058",
"venta_dia": "01"...
Sobre el Soporte :
El soporte para la API es solo via correo electronico a soporte@obuma.cl o via ticket desde la aplicacion. No se entrega soporte para el uso de la API via telefono o chat.
Ejemplo en PHP :
El punto de partida debiese ser crear un archivo con nombre: connector.php
Dentro de este archivo, ingresaremos las funciones que permiten conectar con la API de OBUMA y el acces-token entregado a tu empresa.
$access_token = 'tu_token';
function get_recurso ( $url ){
global $access_token;
// Inicia cURL
$session = curl_init($url);
// Indica a cURL que retorne data
curl_setopt($session, CURLOPT_RETURNTRANSFER, true);
// Configura cabeceras
$headers = array( 'access-token: ' . $access_token, 'Accept: application/json', 'Content-Type: application/json' ); curl_setopt($session, CURLOPT_HTTPHEADER, $headers);
// Ejecuta cURL
$response = curl_exec($session);
$code = curl_getinfo($session, CURLINFO_HTTP_CODE);
// Cierra la sesión cURL
curl_close($session);
//Esto es sólo para poder visualizar lo que se está retornando
//---print_r($response);
$json = json_decode($response);
return $json;
}
function post_recurso ( $url, $data ){
global $access_token;
// json encode data
$data_string = json_encode($data);
// Inicia cURL
$session = curl_init($url);
// Indica a cURL que retorne data
curl_setopt($session, CURLOPT_RETURNTRANSFER, true);
// Configura cabeceras
$headers = array( 'access-token: ' . $access_token, 'Accept: application/json', 'Content-Type: application/json' ); curl_setopt($session, CURLOPT_HTTPHEADER, $headers);
// Indica que se va ser una petición POST
curl_setopt($session, CURLOPT_POST, true);
// Agrega parámetros
curl_setopt($session, CURLOPT_POSTFIELDS, $data_string);
// Ejecuta cURL
$response = curl_exec($session);
$code = curl_getinfo($session, CURLINFO_HTTP_CODE);
// Cierra la sesión cURL
curl_close($session);
//Esto es sólo para poder visualizar lo que se está retornando
//---print_r($response);
$json = json_decode($response); return $json;
}
Ejemplo de como obtener un listado de las categorias de productos:
require_once('connector.php');
$url='https://api.obuma.cl/v1.0/productosCategorias.list.json';
$json = get_recurso($url);
$json = json_encode($json, true);
$json = json_decode($json, true);
print_r($json);
Ejemplo de como crear una nueva categoria de productos:
require_once('connector.php');
$data = array ( "producto_categoria_nombre" => "combustibles");
$url='https://api.obuma.cl/v1.0/productosCategorias.create.json';
$json = post_recurso($url, $data);
print_r($json);