Formati di risposta e negoziazione del contenuto
Che cosa restituisce un’azione e come l’intestazione Accept sceglie tra un PDF, uno ZIP, una busta JSON e multipart/mixed.
La maggior parte delle azioni restituisce un solo documento application/pdf. Le
quattro azioni di divisione restituiscono più documenti in una volta sola e
l’impacchettamento si sceglie con l’intestazione di richiesta Accept. Questa
pagina è il riferimento per quella negoziazione del contenuto: le opzioni di
impacchettamento, lo schema della busta JSON e che cosa succede quando
un’intestazione Accept non corrisponde a nulla.
Risposte a documento singolo
Ogni azione che non sia una divisione risponde con 200 OK e il PDF elaborato
come corpo grezzo:
HTTP/1.1 200 OK
Content-Type: application/pdf
Content-Length: 48213Non c’è nulla da negoziare. Scrivere il corpo in streaming in un file, come fanno gli esempi di ogni pagina di azione.
Risposte a più documenti
La famiglia delle divisioni restituisce molti documenti da una sola chiamata:
Dividere per numero di pagine,
Dividere a una pagina,
Dividere per dimensione del file e
Dividere in gruppi di pagine. I documenti
di output si chiamano 00001.pdf, 00002.pdf e così via, in ordine.
L’impacchettamento si seleziona con l’intestazione di richiesta Accept:
Intestazione Accept |
Risposta |
|---|---|
| (nessuna inviata) | application/zip, il valore predefinito |
application/zip |
Un archivio ZIP dei PDF di output |
application/json |
Una busta JSON di documenti codificati in base64 |
multipart/mixed |
Un PDF per parte |
| qualsiasi altro | 406 Not Acceptable |
application/zip: il valore predefinito
Senza intestazione Accept (oppure con Accept: application/zip), la risposta è
un archivio ZIP le cui voci si chiamano 00001.pdf, 00002.pdf e così via:
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.zipEstrarre parts.zip per ottenere i singoli documenti.
application/json: la busta base64
Richiedere Accept: application/json per ottenere tutti i documenti in linea in
un’unica risposta JSON, comodo quando si vogliono tenere le parti in memoria
oppure inoltrarle senza toccare il filesystem:
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.jsonIl corpo è un array documents in cui ogni voce contiene il proprio nome e i
byte codificati in base64:
{
"documents": [
{
"name": "00001.pdf",
"content": "JVBERi0xLjcKJeLjz9MK... (base64)",
"content_type": "application/pdf"
},
{
"name": "00002.pdf",
"content": "JVBERi0xLjcKJeLjz9MK... (base64)",
"content_type": "application/pdf"
}
]
}documentsarrayrequiredI documenti PDF di output, in ordine.
documents[].namestringrequiredIl nome del documento: 00001.pdf, 00002.pdf e così via.
documents[].contentstring (base64)requiredIl documento PDF, codificato in base64. Decodificarlo per recuperare i byte grezzi del PDF.
documents[].content_typestringrequiredIl tipo di media del documento: application/pdf.
multipart/mixed: una parte per documento
Richiedere Accept: multipart/mixed per ricevere in streaming i documenti come
corpo multipart con una parte per ogni PDF di output, in ordine. Ogni parte ha un
Content-Type pari a application/pdf e un Content-Disposition che la nomina
00001.pdf, 00002.pdf e così via.
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 senza corrispondenza restituisce 406
Se si invia un’intestazione Accept che non corrisponde a nessuno dei tre
formati qui sopra (ad esempio Accept: application/pdf su un’azione di
divisione), l’API risponde con un 406 Not Acceptable e un corpo
application/problem+json. Occorre omettere Accept per prendere lo ZIP
predefinito oppure richiedere uno dei tipi di media supportati. Vedere
Errori per la forma dei problem details.
Per codice completo che chiama un’azione di divisione e spacchetta ciascun formato (estraendo lo ZIP, decodificando la busta JSON oppure leggendo le parti multipart), vedere la guida Dividere un PDF.