Formats de réponse et négociation de contenu
Ce que renvoie une action, et comment l’en-tête Accept choisit entre un PDF, un ZIP, une enveloppe JSON et multipart/mixed.
La plupart des actions renvoient un seul document application/pdf. Les quatre
actions de division en renvoient plusieurs d’un coup, et vous choisissez leur
conditionnement avec l’en-tête de requête Accept. Cette page est la référence
de cette négociation de contenu : les options de conditionnement, le schéma de
l’enveloppe JSON et ce qui se passe quand un en-tête Accept ne correspond à
rien.
Réponses à un seul document
Toute action qui n’est pas une division répond 200 OK avec le PDF traité comme
corps brut :
HTTP/1.1 200 OK
Content-Type: application/pdf
Content-Length: 48213Il n’y a rien à négocier : écrivez le corps en flux dans un fichier, comme le font les exemples de chaque page d’action.
Réponses à plusieurs documents
La famille des divisions renvoie plusieurs documents en un seul appel :
Diviser par nombre de pages,
Diviser à une page,
Diviser par taille de fichier et
Diviser en groupes de pages. Les
documents de sortie sont nommés 00001.pdf, 00002.pdf, et ainsi de suite, dans
l’ordre. Vous sélectionnez le conditionnement avec l’en-tête de requête
Accept :
En-tête Accept |
Réponse |
|---|---|
| (aucun envoyé) | application/zip, le format par défaut |
application/zip |
Une archive ZIP des PDF de sortie |
application/json |
Une enveloppe JSON de documents encodés en base64 |
multipart/mixed |
Un PDF par partie |
| toute autre valeur | 406 Not Acceptable |
application/zip, le format par défaut
Sans en-tête Accept (ou avec Accept: application/zip), la réponse est une
archive ZIP dont les entrées sont nommées 00001.pdf, 00002.pdf, et ainsi de
suite :
curl https://api.pdfblocks.com/v1/split_by_page_count \
-H 'X-API-Key: your_api_key' \
-F file=@input.pdf \
-F page_count=10 \
-o parts.zipDécompressez parts.zip pour obtenir les documents individuels.
application/json, l’enveloppe base64
Demandez Accept: application/json pour obtenir tous les documents en ligne dans
une seule réponse JSON, ce qui est pratique quand vous voulez garder les parties
en mémoire ou les transmettre sans toucher au système de fichiers :
curl https://api.pdfblocks.com/v1/split_by_page_count \
-H 'X-API-Key: your_api_key' \
-H 'Accept: application/json' \
-F file=@input.pdf \
-F page_count=10 \
-o parts.jsonLe corps est un tableau documents dont chaque entrée porte son nom et ses
octets encodés en base64 :
{
"documents": [
{
"name": "00001.pdf",
"content": "JVBERi0xLjcKJeLjz9MK... (base64)",
"content_type": "application/pdf"
},
{
"name": "00002.pdf",
"content": "JVBERi0xLjcKJeLjz9MK... (base64)",
"content_type": "application/pdf"
}
]
}documentsarrayrequiredLes documents PDF de sortie, dans l’ordre.
documents[].namestringrequiredLe nom du document : 00001.pdf, 00002.pdf, et ainsi de suite.
documents[].contentstring (base64)requiredLe document PDF, encodé en base64. Décodez-le pour retrouver les octets bruts du PDF.
documents[].content_typestringrequiredLe type de média du document : application/pdf.
multipart/mixed, une partie par document
Demandez Accept: multipart/mixed pour recevoir les documents en flux, dans un
corps multipart avec une partie par PDF de sortie, dans l’ordre. Chaque partie a
un Content-Type valant application/pdf et un Content-Disposition qui la
nomme 00001.pdf, 00002.pdf, et ainsi de suite.
curl https://api.pdfblocks.com/v1/split_by_page_count \
-H 'X-API-Key: your_api_key' \
-H 'Accept: multipart/mixed' \
-F file=@input.pdf \
-F page_count=10 \
-o parts.multipartUn Accept sans correspondance renvoie 406
Si vous envoyez un en-tête Accept qui ne correspond à aucun des trois formats
ci-dessus, par exemple Accept: application/pdf sur une action de division,
l’API répond 406 Not Acceptable avec un corps application/problem+json. Soit
vous omettez Accept pour prendre le ZIP par défaut, soit vous demandez l’un des
types de média pris en charge. Voir Erreurs pour la forme des
problem details.
Pour du code de bout en bout qui appelle une action de division et déballe chaque format, en extrayant le ZIP, en décodant l’enveloppe JSON ou en lisant les parties multipart, voir le guide Diviser un PDF et traiter la sortie.