Skip to content
Snippets Groups Projects

Camino API

Tests Status codecov Dependency Status

API GraphQL de Camino: api.camino.beta.gouv.fr


Technologies


Environnement

  • Node.js (v.10 ou plus) et npm
  • PostgreSQL (v.10 ou plus)

Utilisation

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 /backups, coller le fichier camino-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:public-import

# 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

Tests unitaires

# lance les tests en local
npm run test:jest

Tests de bout-en-bout

Ces tests sont lancés depuis camino-ui avec la commande npm run test:cypress.

Pour que cela fonctionne l'API doit être lancée avec npm run dev.

Pour que les tests soient plus rapides, on peut utiliser une version publique de la base de données contenant seulement certains titres miniers.

# crée une copie de la base de données (publique)
npm run db:dump-public

# importe la base de données publique
# met à jour les données (daily)
# crée un utilisateur super-admin
# lance le serveur de dev
npm run test:cypress

Documentation

La documentation est disponible ici.


Structure des fichiers

.

├── dev                  # `scripts de développement`
├── 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`
        ├── 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`

Base de données

camino database schema


Contribution

Voir contributing.md (en anglais) pour plus d'infos.


Crédits

Production

Équipe


Licence

Camino API, le cadastre minier numérique ouvert

AGPL 3 ou plus récent