LogoLogo
adresse.data.gouv.frGuide Mes AdressesGuide des bonnes pratiques
  • Constituer un fichier BAL
  • Publier une Base Adresse Locale
    • Choisir la méthode la plus adaptée.
    • via Mes Adresses
    • via formulaire
    • via moissonnage
    • via l'API de dépôt
      • Comprendre le processus de publication
      • Mettre en place des tests
      • Exemple d'implémentation FME
      • Migration sur la nouvelle API
    • Concepts clés
  • Déposer un signalement
    • Mes Signalements
      • Proposez une création
      • Proposez une modification
      • Proposez une suppression
      • Utilisez l'authentification
    • API de signalement
Propulsé par GitBook
Sur cette page
  • Étape 1 : création de la revision avec contexte d'authentification
  • Étape 2 : téléversement du fichier au format BAL 1.3 ou 1.4
  • Étape 3 : validation
  • Étape 4 : publication de la revision
Exporter en PDF
  1. Publier une Base Adresse Locale
  2. via l'API de dépôt

Comprendre le processus de publication

Pour l'API de dépôt, chaque publication s'appelle une révision, car techniquement, c'est une API de versionnage de fichier.

Dernière mise à jour il y a 5 mois

Swagger de l'API de démo :

Étape 1 : création de la revision avec contexte d'authentification

Lors de la création d'une revision, vous aurez besoin :

  • du token

  • du codeCommune

  • le contexte utilisateur doit être renseigné. Il est composé de 3 champs optionnels (mais fortement recommandés) :

    • Nom de la personne nomComplet qui effectue le dépôt.

    • Nom de l'organisation organisation

    • Champs libre clé/valeur extras : peut-être utilisé pour stocker des identifiants internes au client, des données additionnelles actuellement non supportées par l'API, mais jugées utiles par l'éditeur. Attention ces champs sont publiques.

POST  /communes/27115/revisions                  --> Obligatoire

# Header
Authorization: Token xxxxxxxxxxxxxxxxx           --> Obligatoire
Content-Type: application/json

# Body
{
  "context": {
    "nomComplet": "Alice Bob",          --> Optionnel mais recommandé
    "organisation": "Mairie de Breux-sur-Avre",  --> Optionnel mais recommandé
    "extras": {
      "internal_id": "9990"
    }                                            --> Optionnel
  }
}

Réponse :

# Header
Content-Type: application/json

# Body
{
  "id": "507f191e810c19729de860ea"               --> revisionId pour l'étape 2,3 et 4
  "codeCommune": "27115",
  "context": {
    "nomComplet": "Alice Bob"
    "organisation": "Mairie de Breux-sur-Avre",
    "extras": {
      "internal_id": "9990"
    }
  },
  "validation": {},
  "client": {
    "name": "Éditeur d’adresses",
    "email": "support@editeur-adresses.fr"
  },
  "status": "pending",
  "isReady": false,
  "createdAt": "2020-01-01T00:00:00Z",
  "updatedAt": "2020-01-01T00:00:00Z",
  "publishedAt": null
}

Étape 2 : téléversement du fichier au format BAL 1.3 ou 1.4

  • Pour le téléversement, vous aurez besoin : du token, de la revisionId et du fichier BAL.

  • En option : le Content-Length du fichier et sa signature MD5

PUT /revisions/507f191e810c19729de860ea/files/bal --> Obligatoire

# Header
Authorization: Token xxxxxxxxxxxxxxxxx            --> Obligatoire
Content-Type: text/csv
Content-Length: 2133                              --> Optionnel mais recommandé
Content-MD5: 1234567890abcdedf1234567890abcdedf   --> Optionnel mais recommandé

# Body (Binary)
@@@ fichier BALC @@@                              --> Obligatoire, taille max 50mb

Réponse :

200 Success


# Header
Content-Type: application/json

# Body
{
  "id": "507f199710c19729de860ea",            --> Identifiant du fichier
  "revisionId": "507f191e810c19729de860ea",   --> Identifiant de révision
  "type": "bal",
  "size": 2133,
  "hash": "51ca0bce566423b6c5a321e911438c57195adf747d066e0dd4b212d43c0f4c6e",
  "createdAt": "2020-01-01T00:00:00Z"
}

Étape 3 : validation

  • Pour la validation, vous aurez besoin du token, de la revisionId

POST  /revisions/507f191e810c19729de860ea/compute       --> Obligatoire

# Header
Authorization: Token xxxxxxxxxxxxxxxxx                  --> Obligatoire

Réponse :

200 Success

# Header
Content-Type: application/json

# Body
{
  "id": "507f191e810c19729de860ea"
  "codeCommune": "27115",
  "context": {
    "nomComplet": "Alice Bob"
    "organisation": "Mairie de Breux-sur-Avre",
    "extras": {
      "internal_id": "9990"
    }
  },
  "validation": {
    "valid": true,
    "errors": []
  },
  "client": {
    "name": "Éditeur d’adresses",
    "email": "support@editeur-adresses.fr"
  },
  "status": "pending",
  "isReady": true,
  "createdAt": "2020-01-01T00:00:00Z",
  "updatedAt": "2020-01-01T00:00:00Z",
  "publishedAt": null
}
  • Si le fichier soumis n'est pas valide, la valeur isReady reste à false et validation.valid est false.

Étape 4 : publication de la revision

  • Pour la publication vous aurez besoin du token, de la revisionId

  • Lorsque isReady :true la revision peut être publiée.

POST  /revisions/507f191e810c19729de860ea/publish   --> Obligatoire

# Header
Authorization: Token xxxxxxxxxxxxxxxxx              --> Obligatoire

Réponse :

200 Success

# Header
Content-Type: application/json

# Body
{
  "id": "507f191e810c19729de860ea"
  "codeCommune": "27115",
  "context": {
    "nomComplet": "Alice Bob"
    "organisation": "Mairie de Breux-sur-Avre",
    "extras": {
      "internal_id": "9990"
    }
  },
  "validation": {
    "valid": true,
    "errors": []
  },
  "client": {
    "name": "Éditeur d’adresses",
    "email": "support@editeur-adresses.fr"
  },
  "status": "published",
  "isCurrent": true,     
  "createdAt": "2020-01-01T00:00:00Z",
  "updatedAt": "2020-01-01T00:00:00Z",
  "publishedAt": "2020-01-01T01:00:00Z"
}
  • Si isCurrent : true alors la BAL est en production !

Vous pouvez vérifier vos BAL directement avec le validateur BAL ou

en ligne
ligne de commande
https://plateforme-bal.adresse.data.gouv.fr/api-depot-demo/api
Une publication en 4 requêtes