Formatos de resposta e negociação de conteúdo
O que uma ação devolve e como o cabeçalho Accept escolhe entre um PDF, um ZIP, um envelope JSON e multipart/mixed.
A maioria das ações retorna um único documento application/pdf. As quatro ações
de divisão retornam vários documentos de uma vez, e você escolhe o empacotamento
com o cabeçalho de requisição Accept. Esta página é a referência dessa
negociação de conteúdo: as opções de empacotamento, o esquema do envelope JSON e
o que acontece quando um cabeçalho Accept não corresponde a nada.
Respostas de documento único
Toda ação que não é de divisão responde com 200 OK e traz no corpo bruto o PDF
processado:
HTTP/1.1 200 OK
Content-Type: application/pdf
Content-Length: 48213Não há nada a negociar. Grave o corpo em fluxo para um arquivo, como fazem os exemplos de cada página de ação.
Respostas de vários documentos
A família de divisão retorna muitos documentos em uma única chamada:
Dividir por número de páginas,
Dividir em uma página,
Dividir por tamanho de arquivo e
Dividir em grupos de páginas. Os
documentos de saída são nomeados 00001.pdf, 00002.pdf e assim por diante, em
ordem. Você seleciona o empacotamento com o cabeçalho de requisição Accept:
Cabeçalho Accept |
Resposta |
|---|---|
| (nenhum enviado) | application/zip, o padrão |
application/zip |
Um arquivo ZIP com os PDFs de saída |
application/json |
Um envelope JSON de documentos codificados em base64 |
multipart/mixed |
Um PDF por parte |
| qualquer outro valor | 406 Not Acceptable |
application/zip: o padrão
Sem cabeçalho Accept (ou com Accept: application/zip), a resposta é um arquivo
ZIP cujas entradas são nomeadas 00001.pdf, 00002.pdf e assim por diante:
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.zipDescompacte parts.zip para obter os documentos individuais.
application/json: o envelope base64
Peça Accept: application/json para receber todos os documentos embutidos em uma
única resposta JSON, o que é conveniente quando você quer manter as partes na
memória ou repassá-las sem tocar no sistema de arquivos:
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.jsonO corpo é uma matriz documents, e cada entrada traz seu nome e seus bytes
codificados em base64:
{
"documents": [
{
"name": "00001.pdf",
"content": "JVBERi0xLjcKJeLjz9MK... (base64)",
"content_type": "application/pdf"
},
{
"name": "00002.pdf",
"content": "JVBERi0xLjcKJeLjz9MK... (base64)",
"content_type": "application/pdf"
}
]
}documentsarrayrequiredOs documentos PDF de saída, em ordem.
documents[].namestringrequiredO nome do documento: 00001.pdf, 00002.pdf e assim por diante.
documents[].contentstring (base64)requiredO documento PDF, codificado em base64. Decodifique-o para recuperar os bytes brutos do PDF.
documents[].content_typestringrequiredO tipo de mídia do documento: application/pdf.
multipart/mixed: uma parte por documento
Peça Accept: multipart/mixed para receber em fluxo os documentos como um corpo
multipart, com uma parte por PDF de saída, em ordem. Cada parte tem um
Content-Type application/pdf e um Content-Disposition que a nomeia
00001.pdf, 00002.pdf e assim por diante.
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.multipartUm Accept sem correspondência retorna 406
Se você enviar um cabeçalho Accept que não corresponda a nenhum dos três
formatos acima (por exemplo Accept: application/pdf em uma ação de divisão), a
API responde com 406 Not Acceptable e um corpo application/problem+json. Ou
omita Accept para ficar com o ZIP padrão, ou peça um dos tipos de mídia
compatíveis. Consulte Erros para ver o formato do problem
detail.
Para código de ponta a ponta que chama uma ação de divisão e desempacota cada formato (extraindo o ZIP, decodificando o envelope JSON ou lendo as partes multipart), consulte o guia Dividir um PDF.