Aller au contenu principal

API Modèles

Gérez les modèles de documents réutilisables. Les modèles stockent les définitions de documents qui peuvent être combinées avec des données au moment de la génération pour produire des PDF personnalisés.

Tous les points de terminaison nécessitent une authentification et sont délimités à un locataire.


GET /templates

Listez tous les modèles du locataire.

Point de terminaison

GET /api/v1/{tenantId}/templates

Réponse

Succès (200 OK)

[
{
"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"parentId": null,
"tenantId": "f1e2d3c4-b5a6-7890-1234-567890abcdef",
"name": "Shipping Invoice",
"content": "{ \"documentDefinition\": { ... } }",
"testData": "{ \"client\": { ... } }",
"createdAt": "2026-03-15T10:00:00Z",
"createdBy": "laura.bennett@shipforge.io",
"owner": "laura.bennett@shipforge.io",
"updatedAt": "2026-03-28T14:30:00Z",
"revision": "rev-20260328T143000"
}
]

GET /templates/names

Listez uniquement les noms des modèles (résumé léger).

Point de terminaison

GET /api/v1/{tenantId}/templates/names

Réponse

Succès (200 OK)

Retourne la dernière version de chaque modèle nommé de manière unique.

[
{
"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"name": "Shipping Invoice"
},
{
"id": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
"name": "Delivery Receipt"
}
]

POST /templates

Créez un nouveau modèle.

Point de terminaison

POST /api/v1/{tenantId}/templates

Corps de la requête

ChampTypeRequisDescription
namestringOuiNom du modèle (100 caractères max)
contentstringOuiDéfinition de document JSON en tant que chaîne
testDatastringNonDonnées JSON d'exemple pour aperçu/test
createdBystringOuiIdentifiant de l'auteur (100 caractères max)
ownerstringNonIdentifiant du propriétaire (100 caractères max)
parentIdstring (GUID)NonID du modèle parent pour les chaînes de révision
{
"name": "Shipping Invoice",
"content": "{\"documentDefinition\":{\"contents\":[{\"p\":\"Invoice for $data.client.name\"}]}}",
"testData": "{\"client\":{\"name\":\"Test Corp\"}}",
"createdBy": "laura.bennett@shipforge.io",
"owner": "laura.bennett@shipforge.io"
}

Réponse

Succès (201 Created)

Retourne le modèle créé avec un id généré, une revision et des horodatages.

{
"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"parentId": null,
"tenantId": "f1e2d3c4-b5a6-7890-1234-567890abcdef",
"name": "Shipping Invoice",
"content": "{\"documentDefinition\":{\"contents\":[{\"p\":\"Invoice for $data.client.name\"}]}}",
"testData": "{\"client\":{\"name\":\"Test Corp\"}}",
"createdAt": "2026-03-30T14:30:00Z",
"createdBy": "laura.bennett@shipforge.io",
"owner": "laura.bennett@shipforge.io",
"updatedAt": "2026-03-30T14:30:00Z",
"revision": "rev-20260330T143000"
}

GET /templates/{id}

Obtenez un seul modèle par ID.

Point de terminaison

GET /api/v1/{tenantId}/templates/{id}

Paramètres de chemin

ParamètreTypeDescription
idstring (GUID)Identifiant du modèle

Réponse

Succès (200 OK)

Retourne l'objet de modèle complet.

Erreur (404 Not Found)

Retourné lorsqu'aucun modèle avec l'ID donné n'existe pour ce locataire.


PUT /templates/{id}

Mettez à jour un modèle existant. Cela crée une nouvelle révision liée à la version précédente.

Point de terminaison

PUT /api/v1/{tenantId}/templates/{id}

Corps de la requête

ChampTypeRequisDescription
idstring (GUID)OuiDoit correspondre au paramètre de chemin {id}
namestringNonNom du modèle mis à jour
contentstringOuiDéfinition de document mise à jour
testDatastringNonDonnées de test mises à jour
createdBystringNonIdentifiant de l'auteur
ownerstringNonIdentifiant du propriétaire
{
"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"name": "Shipping Invoice v2",
"content": "{\"documentDefinition\":{\"contents\":[{\"p\":\"Updated invoice for $data.client.name\"}]}}",
"testData": "{\"client\":{\"name\":\"Test Corp\"}}",
"createdBy": "laura.bennett@shipforge.io",
"owner": "laura.bennett@shipforge.io"
}

Réponse

Succès (204 No Content)

Le modèle a été mis à jour avec succès.

Erreur (400 Bad Request)

Retourné lorsque le id dans le corps ne correspond pas au paramètre de chemin.

Erreur (404 Not Found)

Retourné lorsqu'aucun modèle avec l'ID donné n'existe.


DELETE /templates/{id}

Supprimez un modèle.

Point de terminaison

DELETE /api/v1/{tenantId}/templates/{id}

Paramètres de chemin

ParamètreTypeDescription
idstring (GUID)Identifiant du modèle

Réponse

Succès (204 No Content)

Le modèle a été supprimé.

Erreur (404 Not Found)

Retourné lorsqu'aucun modèle avec l'ID donné n'existe.


Révisions de modèle

Les modèles prennent en charge la versioning par le biais de révisions. Chaque mise à jour crée une nouvelle révision liée à son parent.

POST /templates/{templateId}/revisions

Créez une nouvelle révision d'un modèle.

POST /api/v1/{tenantId}/templates/\{templateId\}/revisions

GET /templates/{templateId}/revisions

Listez toutes les révisions d'un modèle, ordonnées par la plus récente en premier.

GET /api/v1/{tenantId}/templates/\{templateId\}/revisions

DELETE /templates/{templateId}/revisions/{revisionId}

Supprimez une révision spécifique.

DELETE /api/v1/{tenantId}/templates/\{templateId\}/revisions/\{revisionId\}

POST /templates/{templateId}/revisions/{revisionId}/revert

Ramenez un modèle à une révision précédente. Cela crée une nouvelle révision avec le contenu de la révision historique spécifiée.

POST /api/v1/{tenantId}/templates/\{templateId\}/revisions/\{revisionId\}/revert