Camino API
API GraphQL de Camino: api.camino.beta.gouv.fr
Technologies
- Node.js
- Express.js
- PostgreSQL
- Express-GraphQL
- Knex.js
- Objection.js
- Eslint
- Prettier
- Standardjs
- Docker
Environnement
- Node.js (v.10 ou plus) et npm
- PostgreSQL (v.10 ou plus)
Configuration et imports des données
- Cloner ce repo :
git clone https://github.com/MTES-MCT/camino-api.git
. - Renommer le fichier
.env-example
en.env
et le compléter. - Créer une base de données PostgreSQL correspondant au fichier
.env
. - À l'intérieur du dossier
/database
, coller le fichiercamino-public.sql
disponible ici : Camino database.
Installation
# installe les dépendances npm install # importe les données depuis /database/camino-public.sql npm run db:import-public # crée un utilisateur admin npm run db:user
Développement
# démarre le serveur avec nodemon npm run dev
Production
# compile l'application avec typescript npm run build # démarre le serveur npm run start
Tests
# lance les tests en local npm run dev:test
Structure des fichiers
.│├── knex # `scripts de création et d'import de la base de données (npm run migrate) │ ├── migrations # `création de la base de données` │ └── seeds # `import depuis les fichier /sources vers la base de données` │├── manual # `source de la documentation générée avec esdoc` │└── src # `fichiers sources. Transformés avec npm run build.` ├── index # `point d'entrée` │ ├── api # `API graphql` │ ├── resolvers # `liens entre l'API et la base de données` │ ├── schemas # `description des nœuds de l'API` │ └── types # `types graphQl customs` │ ├── config # │ ├── index # `variables globales` │ └── knex # `connexion à la base de données` │ ├── database # `base de données PostgreSQL` │ ├── models # `modèles de la base de données (knex.js / objection.js)` │ └── queries # `requêtes à la base de données (knex.js / objection.js)` │ ├── business # `logique métier` │ ├── processes # `scripts de traitement` │ ├── rules # `lois et procédures administratives` │ ├── utils # `utilitaires de filtrage et de classement` │ ├── daily # `scripts de mise à jour quotidiens (npm run daily)` │ ├── etape-update # `script effectués lors de la mise à jour d'une étape` │ └── monthly # `scripts de mise à jour mensuels (npm run monthly)` │ └── tools # `outils` ├── dev # `outils de développement` ├── export # `exportation de la base de données vers des spreadsheets (npm run export)` ├── import # `import de spreadsheets vers des fichiers json dans /sources (npm run import)` ├── api-... # `connexion aux api externes` └── emails-send # `envoi d'email`
PostgreSQL
Contribution
Voir contributing.md (en anglais) pour plus d'infos.
Crédits
Production
Équipe
- Guillaume Levieux, intrapreneur
- Joeffrey Arruyer, coach
- François Romain, développeur
- Adrien Risser, développeur
Licence
Camino API, le cadastre minier numérique ouvert