Ejemplo de uso en R

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

Para los ejemplos se hace uso de R versión 4.0 o superior y las librerías httr y jsonlite, que necesitarás instalar en la primera ejecución:

install.packages(c("httr", "jsonlite"))

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>/
library(httr)
library(jsonlite)

authentication <- authenticate("username", "password")

buscar <- function(nombre) {
  params <- list(query = nombre)
  url <- "https://api.librebor.me/v2/person/search/"
  res <- GET(url, authentication, query = params)
  data <- fromJSON(rawToChar(res$content))
}

rajoy <- buscar("Rajoy Brey")
for (result in list(rajoy$people)) {
  print(paste("Nombre:", result$name))
  print(paste("Slug:", result$slug))
  print(paste("Provincia:", result$province))
  print(paste("Última actualización:", result$last_update))
}

print(paste("Número de resultados:", rajoy$total_results))

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:

library(httr)
library(jsonlite)

authentication <- authenticate("username", "password")

info_persona <- function(slug) {
  url <- paste0("https://api.librebor.me/v2/person/by-slug/", slug, "/")
  res <- GET(url, authentication)
  data <- fromJSON(rawToChar(res$content))
}

rajoy <- info_persona("rajoy-brey-enrique")
person <- rajoy$person

print(paste("--- Cargos activos:", person$total_active_positions, "---"))
for (position in person$active_positions) {
  print(position)
}

print(paste("--- Cargos inactivos:", person$total_inactive_positions, "---"))
for (position in person$inactive_positions) {
  print(position)
}

print(paste("Última aparición:", person$last_update))