PanamaQL es una API construida en GraphQL para proporcionar información detallada sobre la división administrativa de Panamá, incluyendo provincias, distritos, corregimientos y comarcas. La API permite realizar consultas específicas sobre cada región y obtener detalles precisos como la capital de cada provincia o la cabecera de cada distrito.
- Consulta de Provincias: Obtén información sobre las provincias, incluyendo sus distritos y capitales.
- Consulta de Distritos: Busca distritos específicos por nombre, tanto en provincias como en comarcas.
- Consulta de Comarcas: Detalla las comarcas con sus distritos y capitales.
- GraphQL API: Una API flexible que permite obtener exactamente los datos que necesitas.
- NVM (Node Version Manager) o N (n – Interactively Manage Your Node.js Versions)
- Node.js (v18+)
- npm o yarn
-
Clona el repositorio:
git clone https://github.com/kurai021/panamaql.git
-
Entra en el directorio del proyecto:
cd panamaql
-
Instala las dependencias:
npm install
o si prefieres
yarn
:yarn install
-
Ejecuta el servidor:
npm run dev
o, si usas
yarn
:yarn dev
El servidor estará disponible en http://localhost:3000
.
Una vez que el servidor esté en ejecución, puedes acceder a la interfaz de GraphQL Playground en http://localhost:3000/graphql
para realizar consultas.
- Obtener todas las provincias con sus distritos y corregimientos:
query {
provincia {
id
nombre
mapa
capital
habitantes
superficie
distrito {
id
nombre
cabecera
corregimientos
}
}
}
- Buscar una provincia por ID, en la siguiente tabla se muestran los IDs por provincia
ID | Provincia |
---|---|
PA-BT | Bocas del Toro |
PA-C | Coclé |
PA-CL | Colón |
PA-CH | Chiriquí |
PA-D | Darién |
PA-H | Herrera |
PA-LS | Los Santos |
PA-P | Panamá |
PA-PO | Panamá Oeste |
PA-V | Veraguas |
query {
provinciaById(id: "PA-V") {
id
nombre
mapa
capital
distrito {
nombre
}
}
}
- Buscar una provincia por nombre
query {
provinciaByName(name: "Panamá") {
id
nombre
mapa
capital
distrito {
nombre
}
}
}
- Buscar un distrito por nombre
query {
distritoByName(name: "San Miguelito") {
id
nombre
cabecera
corregimientos
}
}
- Obtener todas las comarcas
query {
comarca {
id
nombre
mapa
capital
habitantes
superficie
distrito {
nombre
corregimientos
}
}
}
- Buscar una comarca por ID, en la siguiente tabla se muestran los IDs por comarca
ID | Comarca |
---|---|
PA-EW | Emberá-Wounaan |
PA-GY | Guna Yala |
PA-NTD | Naso Tjër Di |
PA-NB | Ngäbe-Buglé |
query {
comarcaById(id: "PA-NTD") {
id
nombre
capital
distrito {
id
nombre
cabecera
corregimientos
}
}
}
- Buscar una comarca por nombre
query {
comarcaByName(name: "Ngäbe-Buglé") {
id
nombre
capital
distrito {
id
nombre
cabecera
corregimientos
}
}
}
Para ejecutar las pruebas, utiliza el siguiente comando:
npm test
# o si usas yarn
yarn test
¡Las contribuciones son bienvenidas! Si quieres colaborar, sigue estos pasos:
- Haz un fork del proyecto.
- Crea una nueva rama para tu funcionalidad (
git checkout -b feature/nueva-funcionalidad
). - Realiza tus cambios y haz commit (
git commit -am 'Añadir nueva funcionalidad'
). - Sube tus cambios a tu rama (
git push origin feature/nueva-funcionalidad
). - Abre un Pull Request.