argeo v2.3.0
Argeo
Wrapper de la API del Servicio de Normalización de Datos Geográficos de Argentina que agrega el tipado necesario para hacer solicitudes y gestionar respuestas, facilitando a los desarrolladores el uso de la misma.
Características
- Tipado estático para las interacciones con la API
- Posibilidad de definir el
baseURL
- Autenticación con JWT
Instalación e importación
Para instalar argeo
en tu proyecto usá uno de los siguientes comandos
$ npm install argeo
# or
$ pnpm add argeo
Importá la librería e instanciá la clase Argeo
import { Argeo } from 'argeo'
const argeo = new Argeo()
Configuración
La clase Argeo permite pasarle un objeto de configuración con los siguientes atributos:
baseURL
string
Por defecto es https://apis.datos.gob.ar/georef
pero en el caso de tener tu propio servicio (por ejemplo usando Docker) podés especificar la ruta. La librería une automáticamente tu baseURL
con los endpoints.
const defaultArgeo = new Argeo()
const customArgeo = new Argeo({ baseURL: 'https://mi.url.personalizada' })
// https://apis.datos.gob.ar/georef/api/provincias
defaultArgeo.provincias.buscar()
// https://mi.url.personalizada/api/provincias
customArgeo.provincias.buscar()
token
string
| { secret: string, key: string }
En el caso de poseer un JWT para incrementar la cuota de uso de la API, podés configurar la librería para utilizarlo.
!TIP Si en vez de disponer de un
token
se dispone delsecret
y elkey
, se puede pasar un objeto con dichos atributos. La librería se encarga de generar untoken
con estos datos según se indica en Autenticarse con JWT.
// En el caso de contar con un token
const argeo = new Argeo({ token: 'acá va tu token' })
// En el caso de disponer de un 'secret' y un 'key'
const argeo = new Argeo({ token: { secret: 'tu secret', key: 'tu key' } })
Uso
Hacé una solicitud usando el método buscar
de los distintos módulos
. El siguiente ejemplo usa el módulo de provincias
.
!IMPORTANT
Las solicitudes retornan un objeto con los atributosdata
yerror
. En el caso de ser exitosa la solicituderror
será null ydata
tendrá la información solicitada. Por otra parte, si hay un errordata
será null yerror
tendrá la información del error.
const argeo = new Argeo()
const { data, error } = await argeo.provincias.buscar({ nombre: 'entre rios' })
console.log(data)
/*
{
cantidad: 1,
inicio: 0,
parametros: { nombre: 'entre rios' },
provincias: [
{
centroide: { lat: -32.0589278938558, lon: -59.201262616496 },
id: '30',
nombre: 'Entre Ríos'
}
],
total: 1
}
*/
console.log(error)
/*
null
*/
Contribución
En el caso de querer contribuir
- Hacé un fork del repositorio y clonalo localmente
- Ejecutá uno de los siguientes comandos
$ npm run prepare
# or
$ pnpm prepare
- Creá una nueva rama con tus cambios y hacé un pull request detallando lo que desarrollaste
!IMPORTANT El repositorio utiliza Conventional Commits y no te permitirá hacer commits con textos que no sigan la convención.
Por otra parte al intentar hacer un push se ejecutarán todos los tests y si alguno falla se cancelará el push.
Tests
Para ejecutar los tests manualmente usá uno de los siguientes comandos
$ npm run test
# or
$ pnpm test
!TIP Por defecto los tests se ejecutan en
watch mode
, si querés correrlos una vez usá el flag--run
devitest
, más información acá.
License
MIT License