Versionnage et dépréciation

Ce qui peut évoluer dans la version v1, ce qui n'y change jamais, le statut bêta et la façon dont une version est dépréciée.

Documentation de l'APIGuides · Versionnage

Une version dans l'adresse

La version fait partie de l'adresse : https://api.mabellenote.com/v1. La version v1 n'évolue que par ajout. Une évolution incompatible crée une nouvelle version, par exemple /v2, qui coexiste avec la précédente.

Ce qui peut arriver dans v1

Ces évolutions ne sont pas cassantes et peuvent arriver à tout moment :

  • une nouvelle opération ;
  • un nouveau paramètre facultatif ;
  • un nouveau champ dans une réponse ;
  • une nouvelle valeur dans une énumération ;
  • un nouveau type d'événement ;
  • un nouveau code d'erreur, sur une nouvelle opération ;
  • un paramètre obligatoire qui devient facultatif ;
  • une limite relevée.

Ce qui ne change jamais dans v1

  • Une opération, un champ ou une valeur d'énumération n'est ni retiré ni renommé.
  • Le type ou le format d'un champ ne change pas.
  • Un paramètre facultatif ne devient pas obligatoire.
  • Un champ toujours renseigné ne devient pas facultatif ni null.
  • Le sens d'un champ, le statut ou le code d'une erreur, et le droit requis par une opération restent les mêmes.

Écrire une intégration robuste

  • Ignorez les champs que vous ne connaissez pas.
  • Toutes les énumérations sont ouvertes : prévoyez un traitement par défaut pour une valeur inconnue.
  • Un champ documenté est toujours présent, à null quand il est vide.
  • Les identifiants sont des chaînes opaques : ne les interprétez pas.
  • Les dates sont des chaînes ISO 8601 en UTC, avec les millisecondes.

Opérations en bêta

Une opération marquée « Bêta » dans la référence (x-stability: beta dans la description OpenAPI) peut encore évoluer avant d'être déclarée stable : elle n'est pas couverte par les garanties ci-dessus. Les lectures sont stables ; le journal d'événements, les webhooks, les écritures et la publication sur Google sont en bêta. Le tableau ci-dessous, tiré de la description OpenAPI, donne la stabilité de chaque opération.

OpérationRôleDroit requisStabilité
GET /v1/healthVérifier la disponibilité de l'APISans cléStable
GET /v1/openapi.jsonObtenir la description OpenAPISans cléStable
GET /v1/meIdentifier la clé APIaccount:readStable
GET /v1/establishmentsLister les établissementsestablishments:readStable
GET /v1/establishments/{establishmentId}Obtenir un établissementestablishments:readStable
GET /v1/establishments/{establishmentId}/statsObtenir les statistiques d'un établissementstats:readStable
GET /v1/reviewsLister les avisreviews:readStable
GET /v1/reviews/{reviewId}Obtenir un avisreviews:readStable
GET /v1/feedbacksLister les retours privésfeedbacks:readStable
GET /v1/feedbacks/{feedbackId}Obtenir un retour privéfeedbacks:readStable
GET /v1/contactsLister les contactscontacts:readStable
POST /v1/contactsCréer ou mettre à jour un contactcontacts:writeBêta
GET /v1/contacts/{contactId}Obtenir un contactcontacts:readStable
PATCH /v1/contacts/{contactId}Modifier un contactcontacts:writeBêta
POST /v1/visitsEnregistrer un passagevisits:writeBêta
POST /v1/promo-codes/redeemValider un code promopromo_codes:redeemBêta
POST /v1/reviews/{reviewId}/reply-draftsGénérer un brouillon par l'IAai:generateBêta
PUT /v1/reviews/{reviewId}/reply-draftDéposer un brouillon rédigéreplies:writeBêta
POST /v1/reviews/{reviewId}/replyPublier une réponse sur Googlereplies:publishBêta
GET /v1/eventsLister les événementsevents:readBêta
GET /v1/events/{eventId}Obtenir un événementevents:readBêta
GET /v1/webhook-endpointsLister les points de réceptionwebhooks:manageBêta
POST /v1/webhook-endpointsCréer un point de réceptionwebhooks:manageBêta
DELETE /v1/webhook-endpoints/{endpointId}Supprimer un point de réceptionwebhooks:manageBêta
POST /v1/webhook-endpoints/{endpointId}/testEnvoyer un événement de testwebhooks:manageBêta

Dépréciation d'une version

Quand une nouvelle version majeure paraît :

  1. L'ancienne version reste servie à l'identique pendant au moins 12 mois.
  2. Ses réponses portent les en-têtes Deprecation (RFC 9745) et Sunset (RFC 8594), qui donne la date de fin, ainsi qu'un en-tête Link vers le journal des changements (rel="deprecation").
  3. Les propriétaires et administrateurs des comptes qui utilisent encore l'ancienne version sont prévenus par email.
  4. Après la date de fin, l'ancienne version répond 410 Gone, avec une erreur qui renvoie vers le guide de migration.

Chaque évolution du contrat est datée dans le journal des changements de l'API.

Description OpenAPI

GET /v1/openapi.json renvoie la description OpenAPI 3.1 de la version, sans clé. Le paramètre lang choisit la langue des descriptions (en par défaut, ou fr). Elle sert à générer un client ou à importer l'API dans un outil de test.

Mis à jour le 25 octobre 2026