Ejemplo de uso en PHP

En esta sección se muestran algunos ejemplos de código fuente en PHP para interacturar con la API de LibreBOR.

Para los ejemplos se hace uso de la librería curl. Si usa una distribución de Linux basada en Debian, puede instalarlo de la siguiente manera:

# A través del gestor de paquetes
sudo apt install php-curl

# A través del gestor de paquetes Composer
sudo apt install composer
composer require curl/curl

Para instalarla en otros sistemas operativos, consulte el manual correspondiente.

Buscar empresas y personas por nombre

El siguiente código usa la API para buscar todos los "Rajoy Brey" y muestra por pantalla los nombres así como otros datos devueltos:

En general, el flujo es el siguiente:

  1. Hacer una búsqueda por nombre mediante el endpoint /v2/person/search/
  2. Escoger el campo slug del resultado deseado
  3. Obtener los detalles mediante el slug y el endpoint /v2/person/by-slug/<slug>/
<?php

$baseUrl = "https://api.librebor.me/v2/";
$username = "username";
$password = "password";

function buscar($nombre) {
        global $baseUrl, $username, $password;
        $params = array("query" => $nombre);
        $url = $baseUrl . 'person/search/?' . http_build_query($params);

        $ch = curl_init($url);
        curl_setopt($ch, CURLOPT_USERPWD, $username . ":" . $password);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_TIMEOUT, 10);

        $response = curl_exec($ch);

        if(curl_errno($ch)) {
            throw new Exception(curl_error($ch));
        }

        curl_close($ch);
        return json_decode($response);
}

$rajoy = buscar("Rajoy Brey");
foreach ($rajoy->people as $result) {
        print("Nombre: " . $result->name . "\n");
        print("Slug: " . $result->slug . "\n");
        print("Provincia: " . $result->province . "\n");
        print("Última actualización: " . $result->last_update . "\n");
}

print("\nNúmero de resultados: " . $rajoy->total_results . "\n");
?>

Obtener información mercantil de una persona

El siguiente código usa la API para obtener las empresas en las que figura una persona y la última fecha de aparición en el BORME:

<?php

$baseUrl = "https://api.librebor.me/v2/";
$username = "username";
$password = "password";

function info_persona($slug) {
        global $baseUrl, $username, $password;
        $url = $baseUrl . 'person/by-slug/' . $slug . '/';

        $ch = curl_init($url);
        curl_setopt($ch, CURLOPT_USERPWD, $username . ":" . $password);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_TIMEOUT, 10);

        $response = curl_exec($ch);

        if(curl_errno($ch)) {
            throw new Exception(curl_error($ch));
        }

        curl_close($ch);
        return json_decode($response);
}

function print_position($position) {
        print("Sociedad: " . $position->name_company . "\n");
        print("Cargo: " . $position->role . "\n");
        if (array_key_exists("date_from", $position)) {
                print("Desde:" . $position->date_from . "\n");
        }
        if (array_key_exists("date_to", $position)) {
                print("Hasta:" . $position->date_to . "\n");
        }
        print("");
}

$rajoy = info_persona("rajoy-brey-enrique");
$person = $rajoy->person;

print("--- Cargos activos: " . $person->total_active_positions . " ---\n");
foreach ($person->active_positions as $position) {
    print_position($position);
}

print("--- Cargos inactivos: " . $person->total_inactive_positions . " ---\n");
foreach ($person->inactive_positions as $position) {
    print_position($position);
}

print("Última aparición: " . $person->last_update . "\n");

?>