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:
- Hacer una búsqueda por nombre mediante el endpoint
/v2/person/search/
- Escoger el campo slug del resultado deseado
- 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))