PDF Blocks
PrezziSupporto
Iniziare gratis
Aprire la pagina

Richieste e risposte

La forma condivisa da ogni chiamata: una richiesta multipart, una risposta che è un documento e nessuno stato conservato tra le due.

Tutte le azioni dell’API condividono un solo contratto. Si invia una richiesta multipart/form-data con il PDF in un campo file e si riceve indietro il documento elaborato come corpo della risposta. Non c’è nessun processo da interrogare, nessun passaggio di upload e nessuna risorsa da ripulire in seguito: una richiesta in entrata, un documento in uscita. Una volta imparata questa forma, ogni pagina di azione si legge allo stesso modo.

Ogni richiesta ha lo stesso aspetto

Ogni azione è un unico POST verso /v1/<action> con un corpo multipart/form-data. Tre elementi sono sempre presenti:

  • L’intestazione X-API-Key che contiene la chiave segreta, su HTTPS.
  • Una parte file che contiene il PDF di input.
  • Zero o più parti di testo per le opzioni dell’azione (ad esempio line_1 o pages), con i nomi esatti elencati nel riferimento dell’azione.

Ecco una richiesta completa che appone una filigrana, mostrata come HTTP grezzo:

POST /v1/add_text_watermark HTTP/1.1
Host: api.pdfblocks.com
X-API-Key: your_api_key
Content-Type: multipart/form-data; boundary=----PdfBlocksBoundary

------PdfBlocksBoundary
Content-Disposition: form-data; name="file"; filename="input.pdf"
Content-Type: application/pdf

%PDF-1.7
<binary PDF bytes>
------PdfBlocksBoundary
Content-Disposition: form-data; name="line_1"

CONFIDENTIAL
------PdfBlocksBoundary--

Leggendola parte per parte:

  • Riga di richiesta: POST /v1/add_text_watermark. Il nome dell’azione è il percorso; il metodo è sempre POST.
  • X-API-Key: la chiave autentica la richiesta. Vedere Autenticazione.
  • Content-Type: multipart/form-data con una stringa di delimitazione. L’helper multipart di qualsiasi client HTTP imposta questa intestazione e il delimitatore al posto dell’utente; è raro doverlo scrivere a mano.
  • La parte file: il PDF di input, inviato in binario.
  • Le parti di opzione: una parte per opzione, qui line_1. Ciascuna è un semplice valore di testo.

Quel corpo non va mai assemblato a mano. Il client HTTP di ogni linguaggio lo costruisce a partire da un handle di file e da qualche campo. La stessa richiesta in cURL:

cURLbash
curl https://api.pdfblocks.com/v1/add_text_watermark \
  -H 'X-API-Key: your_api_key' \
  -F file=@input.pdf \
  -F line_1='CONFIDENTIAL' \
  -o watermarked.pdf

L’URL di base predefinito è https://api.pdfblocks.com. Per mantenere l’elaborazione in una giurisdizione precisa, sostituire l’host con uno regionale. Vedere Regioni e residenza dei dati. Cambia soltanto l’host; il percorso, le intestazioni e il corpo sono identici ovunque.

Ogni risposta è il documento

Un’azione a output singolo risponde con 200 OK e il PDF elaborato come corpo grezzo:

HTTP/1.1 200 OK
Content-Type: application/pdf
Content-Length: 48213

%PDF-1.7
<binary PDF bytes>

Il corpo è il documento finito, non un JSON che avvolge un URL né una stringa base64. Scriverlo in streaming direttamente in un file oppure passarlo al passaggio successivo della pipeline. In cURL è il -o watermarked.pdf qui sopra; nel codice è scrivere i byte di response su disco, esattamente come fanno gli esempi di ogni pagina di azione.

Stateless per progettazione

L’API non memorizza nulla. Il documento viene elaborato in memoria, nella regione a cui ci si rivolge, e scartato non appena la risposta è stata scritta. Non esiste alcun ID di documento a cui fare riferimento in seguito né alcuna copia lato server da eliminare. Poiché tra una chiamata e l’altra non persiste nulla, ogni richiesta deve portare il proprio file di input, anche quando si concatenano le azioni e si passa l’output di una chiamata direttamente alla successiva (vedere Concatenare le azioni).

Dove il contratto varia

Tre cose si aggiungono a questa base, ciascuna documentata sulla propria pagina:

  • Più di un input. Unire documenti accetta un array ordinato di parti file e Aggiungere una filigrana immagine accetta una seconda parte binaria image. Entrambe sono trattate in Lavorare con i file.
  • Più di un output. La famiglia delle divisioni restituisce più documenti e l’impacchettamento si sceglie (ZIP, JSON o multipart) con l’intestazione Accept. Vedere Formati di risposta.
  • Gli errori. Qualsiasi errore restituisce un corpo application/problem+json conforme alla RFC 7807, mai un PDF parziale. Vedere Errori.