Guide du produit et de l’API

Brouillons, publication et versions

Enregistrer ne signifie pas publier

Enregistrer met à jour le brouillon du modèle. Publier sélectionne une version pour la production. Un modèle peut avoir une version publiée pendant que vous travaillez sur un brouillon récent ; ne supposez pas que ses modifications sont déjà publiées.

Avant de publier

Testez l’aperçu avec des exemples et des données réelles longues, puis vérifiez les formats requis. Comparez les versions active et publiée dans l’Historique. Publiez lorsque le contenu destiné à la production est prêt.

Restaurer depuis l’historique

Restaurer une ancienne version enregistre son contenu comme nouvelle version active sans effacer l’historique. Vérifiez le contenu après restauration. Publiez séparément si vous souhaitez remplacer la version publiée.

Lire, restaurer et publier une version

Chaque enregistrement manuel crée une nouvelle version et rien n’est jamais écrasé. Restaurer une ancienne version ne supprime pas les plus récentes : l’ancienne définition est écrite comme nouvelle version afin de conserver un historique complet.

cURL
# Liste des versions - la plus récente d’abord
curl -s https://api.pdfgine.com/api/v1/templates/invoice/history \
  -H "X-PDFgine-Key: $PDFGINE_KEY"

# La définition d’une version
curl -s https://api.pdfgine.com/api/v1/templates/invoice/history/3 \
  -H "X-PDFgine-Key: $PDFGINE_KEY"

# Revenir à cette version - écrite comme nouvelle version, l’ancienne est conservée
curl -X POST https://api.pdfgine.com/api/v1/templates/invoice/history/3/restore \
  -H "X-PDFgine-Key: $PDFGINE_KEY"

# Publier le brouillon
curl -X POST https://api.pdfgine.com/api/v1/templates/invoice/publish \
  -H "X-PDFgine-Key: $PDFGINE_KEY"
HTTP 409
{
  "type": "https://pdfgine.dev/problems/template-conflict",
  "title": "Conflit de modèle",
  "status": 409,
  "detail": "Le modèle a été modifié par une autre opération. Chargez la version actuelle et réessayez.",
  "templateCode": "invoice",
  "currentVersion": 19,
  "currentDraftRevision": 0
}

Une écriture contenant un expectedVersion périmé est refusée plutôt que fusionnée. Le corps de la réponse 409 indique le modèle, sa version actuelle et la révision du brouillon ; lisez la définition actuelle, réappliquez votre modification et écrivez à nouveau.

Conflits et codes de connexion

Enregistrer depuis une ancienne version peut créer un conflit si une autre session a modifié le modèle. Vérifiez l’état et l’historique au lieu d’écraser aveuglément. Le code de connexion identifie le modèle dans les requêtes API. S’il change, mettez aussi à jour les intégrations qui l’utilisent.

Flux complet d’un rapport →

Les problèmes les plus courants

  • Enregistrer ne signifie pas publier. Un brouillon peut être parfait pendant des jours alors que la production utilise toujours la dernière version publiée.
  • Restaurer ne supprime rien. L’ancienne définition est écrite comme nouvelle version ; l’historique est conservé et le numéro de version continue d’augmenter.
  • Une réponse 409 répétée avec le même expectedVersion est à nouveau refusée. Lisez la version actuelle, appliquez-y votre modification puis écrivez.
  • Un rendu avec purpose editor-test utilise le brouillon, production la version publiée. Deux rendus semblant identiques peuvent provenir de deux mises en page différentes.
  • Le point de terminaison de l’historique est paginé. Sans limit, vous obtenez la page la plus récente et un en-tête Link ; considérer cette page comme tout l’historique masque les anciennes révisions.