API REST
Formulaires PDF
Comment fonctionnent les modèles de formulaire PDF de Doclift : téléversement du PDF, variables auto-détectées, ce que l'API peut et ne peut pas faire avec eux.
Ce qu'est un formulaire PDF
Un formulaire PDF est un modèle créé en téléversant un PDF qui contient
déjà des champs AcroForm : champs de texte, cases à cocher, groupes de
boutons radio, listes déroulantes. Sa category est fillable_form. Au
lieu d'un corps HTML, sa mise en page est le PDF téléversé lui-même. Il
n'y a aucun champ content à créer à la main, et aucun modèle HTML
n'intervient.
Créer et modifier un formulaire PDF se fait exclusivement depuis le dashboard Doclift, qui téléverse le PDF pour vous. Il n'existe aucun endpoint de l'API classique pour cela.
Les variables proviennent du PDF, pas de vous
Téléverser un PDF extrait chaque champ AcroForm et le transforme en variable :
| Champ de la variable | Source |
|---|---|
| title | le nom technique du champ dans le PDF |
| description | le libellé affiché du champ, ou son nom technique à défaut si le PDF n'en a pas |
| field_type | text (champ simple ou multiligne), checkbox, radio (groupe de boutons radio), ou select (liste déroulante/combo) |
| seed_value | la valeur par défaut du champ, si le PDF en définit une |
| allowed_values | pour radio/select, la liste d'options lue depuis le widget |
Comme title est copié tel quel depuis le nom de champ du PDF, rien ne
garantit qu'il suive la convention de nommage que vous choisiriez par
ailleurs pour les variables d'un modèle custom. Nommez les champs avec
soin dans l'outil qui a produit le PDF.
Retéléverser une nouvelle version du PDF resynchronise les variables : un
champ dont le nom correspond à une variable existante met à jour le
field_type et les allowed_values de cette variable ; un nouveau nom de
champ crée une nouvelle variable ; une variable dont le nom n'est plus
parmi les champs du PDF est détruite.
Vous ne pouvez ni renommer, ni retyper, ni créer ces variables à la main
Le dashboard vous permet de modifier uniquement la description et le
seed_value d'une variable de formulaire PDF. title et field_type
sont en lecture seule et déterminés uniquement par ce que disent les
champs de formulaire du PDF. Le seul moyen de les changer est de
retéléverser un PDF dont les champs portent le nom ou le type voulu.
Ce que l'API peut lire
Une fois publié, un formulaire PDF est listé et affiché exactement comme n'importe quel autre modèle :
GET /api/v1/templates: apparaît dans la liste, uniquementid/title/descriptionGET /api/v1/templates/:id: détail complet, avecvariablesportanttitle,description,field_type, etallowed_valuespour chaque champ auto-détecté
{
"id": 100021,
"title": "Subscription form",
"description": "Tax form uploaded as a fillable PDF",
"content": null,
"created_at": "2024-04-12T09:15:00+01:00",
"updated_at": "2024-04-12T09:15:00+01:00",
"variables": [
{
"title": "first_name",
"description": "First name",
"field_type": "text",
"allowed_values": []
},
{
"title": "plan",
"description": "Subscription plan",
"field_type": "select",
"allowed_values": ["starter", "pro", "enterprise"]
}
]
}
Voir API Modèles pour la référence complète des champs de cette réponse.
Ce que seul le dashboard peut faire
Chaque chemin d'écriture de cette API (POST/PATCH/DELETE sur
/api/v1/templates, publish, unpublish, et toute action
/api/v1/templates/:template_id/variables) est restreint aux modèles
custom uniquement. Les appeler avec l'identifiant d'un formulaire PDF
répond 404, identique à un identifiant qui n'existe pas. Voir
Les écritures ne touchent que les modèles custom
pour le corps exact de la réponse, et la même règle telle qu'elle
s'applique aux endpoints d'écriture des modèles custom.
Il n'y a aucun moyen de créer, modifier, supprimer, publier, dépublier, ou gérer les variables d'un formulaire PDF via l'API. Tout cela (y compris le téléversement initial du PDF et toute resynchronisation) se passe depuis le dashboard Doclift.
Générer un document
Une fois publié, un formulaire PDF génère exactement comme un modèle
custom : envoyez son id comme template_id et les valeurs des
variables sous forme d'objet plat à POST /api/v1/document_requests.
Voir API Demandes de document. La
seule différence est que Doclift vérifie chaque valeur fournie par
rapport aux allowed_values de sa variable, quand elles sont définies,
et répond 422 avec un tableau structuré invalid_variables en cas
d'écart. Voir
Erreurs de validation des variables.
orientation et les champs de marge n'ont aucun effet sur le rendu d'un
formulaire PDF, puisque la mise en page est le PDF téléversé lui-même.