Documentazione API
Hai una domanda? Contattaci.
Tutte le richieste API devono essere effettuate tramite HTTPS e utilizzare HTTP Basic Auth con le seguenti credenziali:
Username: API KEY
Password: Not needed
Esempio
curl https://api.printfriendly.com/v1/pdfs/create /
-u your_api_key: /
-d page_url=https://en.wikipedia.org/wiki/Eclipse
Bandiera | Descrizione |
|---|---|
-u | Passa le credenziali di autenticazione di base, due punti dopo la chiave API impediscono a cURL di richiedere una password. |
-d | invia dati nella richiesta POST |
In caso di successo, riceverai una risposta HTTP con stato 302 (Redirect) e le informazioni JSON saranno nel corpo della risposta.
# HTTP RESPONSE
# HEADERS (some of headers are ommited)
Content-Type: application/json; charset=utf-8
Status: 302 Found
Location: https://v.printfriendly.com/system/pdfs/pdf_1480936999_755625A4.pdf
# BODY
{"success":"Redirect to https://v.printfriendly.com/system/pdfs/pdf_1480947535_6e7ecaA4.pdf"}
Versione API
La versione attuale dell'API è 1.0.
La versione principale dell'API deve essere indicata nell'URL come 'v' e numero, ad esempio v1, v2, v3.
Esempio
https://api.printfriendly.com/v2/pdf/create
https://api.printfriendly.com/v2/html/create
Metodi API
Metodo | Input | Output |
|---|---|---|
PDF / crea | URL / HTML | HTML |
html / crea | URL / HTML |
Parametri
È necessario fornire il parametro page_url o html. Tutti gli altri parametri sono opzionali.
Parametri | Valore |
|---|---|
URL della pagina | URL della pagina di destinazione |
HTML | Contenuto HTML della pagina di destinazione |
css_url | URL per il file CSS personalizzato |
header_image_url | URL per immagine intestazione personalizzata |
Testo intestazione | Stringa di testo |
Tutti gli esempi di seguito sono forniti per il metodo "pdf/create" e funzionano anche per il metodo "html/create".
Esempio con il parametro page_url
curl https://api.printfriendly.com/v1/pdfs/create /
-u your_api_key: /
-d page_url=https://test.test /
-d css_url=https://my-site.com/pdf_style.css /
-d header_text='My Custom Header'
In caso di successo, riceverai una risposta HTTP con stato 302 (Redirect) e le informazioni JSON saranno nel corpo della risposta.
Esempio con parametri html
curl https://api.printfriendly.com/v1/pdfs/create /
-u your_api_key: /
-d html='<html><body><h1>Title</h1><p>Text text text text text text text text text</p></body></html>'
In caso di successo, riceverai una risposta http con Stato 200 e contenuto PDF/HTML nel corpo della risposta.
Errori
PrintFriendly utilizza codici di stato convenzionali e risposte JSON per fornire dettagli sugli errori.
Codici di stato
Stato | Descrizione |
|---|---|
200 OK | Tutto funziona bene. |
400 Richiesta errata | Si è verificato un errore. Vedi i dettagli in JSON. |
401 Non autorizzato | 401 Non autorizzato |
404 Non trovato | 404 Non trovato |
429 Troppe richieste | 429 Troppe richieste |
Tutte le risposte non riuscite (non Status 302 OK) hanno un corpo JSON con i dettagli dell'errore, che includeranno il tipo di errore e il messaggio.
Tipi di errore
Tipo | Descrizione |
|---|---|
Validazione dei parametri | Validazione dei parametri non riuscita. |
Dominio vietato | Questo dominio è temporaneamente vietato. |
Analisi fallita | Impossibile analizzare la pagina. Non possiamo determinare il contenuto di questa pagina. |
Errore di recupero | Impossibile recuperare la pagina. Verifica che l'URL sia accessibile e riprova. |
carico alto | La validazione dei parametri non è riuscita. |
Estensione file non valida | Sono supportate solo le pagine web. È un file PDF/TXT o un'immagine (JPG, PNG, GIF). |
pagina grande | La pagina di destinazione supera i 2 MB. Le pagine grandi non sono supportate. |
piattaforma di sicurezza | La piattaforma di sicurezza ci impedisce di accedere a questa pagina. |
timeout | Timeout scaduto. Il motore non può elaborare la pagina in 30 secondi. Per favore prova di nuovo più tardi. |
onnicomprensivo | Errore imprevisto. Si prega di riprovare più tardi. |
Esempio
curl https://api.printfriendly.com/v1/pdfs/create /
-u your_api_key: /
-d page_url=https://test.test
Input HTML
# HTTP RESPONSE
# HEADERS (some of headers were ommited)
Content-Type: application/json; charset=utf-8/
Status: 400 Bad Request
# BODY (JSON)
{"status":"failed","message":"Print technology unable to download or parse content"}
Limitazione della velocità delle richieste
L'API ha un limite di 60 richieste al minuto. Se superi questo limite, riceverai una risposta con Stato: 429 Troppe richieste.
Intestazione | Descrizione |
|---|---|
Limite di velocità-X | Limite totale delle richieste per il periodo corrente. |
X-Limite rimanente | Richiesta rimanente per il periodo corrente. |
Reimposta X-RateLimit | Numero di secondi fino alla fine del periodo corrente. |
Esempio con il parametro page_url
# HEADERS (some of headers were ommited)
Status: 429 Too Many Requests
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 0
X-RateLimit-Reset: 20
# BODY (JSON)Empty