Documentação da API
Tem uma pergunta? Contacte-nos.
Todas as solicitações API devem ser feitas através de HTTPS e usar HTTP Basic Auth com as seguintes credenciais:
Username: API KEY
Password: Not needed
Exemplo
curl https://api.printfriendly.com/v1/pdfs/create /
-u your_api_key: /
-d page_url=https://en.wikipedia.org/wiki/Eclipse
Bandeira | Descrição |
|---|---|
-u | Passe as credenciais de autenticação básicas, dois pontos após a chave API impedem o cURL de solicitar uma senha. |
-d | envie dados em solicitação POST |
Em caso de sucesso, receberá uma resposta HTTP com Status 302 (Redirecionamento) e a informação JSON estará no corpo da resposta.
# 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"}
Versão da API
A versão atual da API é 1.0.
A principal versão da API deve ser indicada no URL como 'v' e número, ou seja, v1, v2, v3.
Exemplo
https://api.printfriendly.com/v2/pdf/create
https://api.printfriendly.com/v2/html/create
Métodos API
Método | Entrada | Saída |
|---|---|---|
PDF / criar | URL / HTML | HTML |
html / criar | URL / HTML |
Parâmetros
Tem de fornecer o parâmetro page_url ou html. Todos os outros parâmetros são opcionais.
Parâmetros | Valor |
|---|---|
URL da página | URL da página de destino |
HTML | Conteúdo HTML da página de destino |
css_url | URL para ficheiro CSS personalizado |
header_image_url | URL para a imagem do cabeçalho personalizado |
Texto do cabeçalho | Sequência de texto |
Todos os exemplos abaixo são fornecidos para o método "pdf/create" e também funcionam para o método "html/create".
Exemplo com o parâmetro 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'
Em caso de sucesso, receberá uma resposta HTTP com Status 302 (Redirecionamento) e a informação JSON estará no corpo da resposta.
Exemplo com parâmetros 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>'
Em caso de sucesso, irá obter uma resposta HTTP com o estado 200 e conteúdo PDF/HTML no corpo da resposta.
Erros
PrintFriendly utiliza códigos de estado convencionais e respostas JSON para fornecer detalhes de erros.
Códigos de estado
Estado | Descrição |
|---|---|
200 OK | Tudo funciona bem. |
400 Pedido Inválido | Ocorreu um erro. Veja os detalhes em JSON. |
401 Não autorizado | 401 Não autorizado |
404 Não encontrado | 404 Não encontrado |
429 Solicitações em excesso | 429 Solicitações em excesso |
Todas as respostas não bem-sucedidas (não Status 302 OK) têm o corpo JSON com os detalhes do erro, que incluirão o tipo de erro e mensagem.
Tipos de Erro
Tipo | Descrição |
|---|---|
Validação de parâmetros | A validação dos parâmetros falhou. |
Domínio proibido | Este domínio está temporariamente banido. |
Falha ao analisar | Não é possível analisar a página. Não conseguimos determinar o conteúdo desta página. |
Erro de busca | Não é possível carregar a página. Verifique se o URL é acessível e tente novamente. |
alta carga | A validação dos parâmetros falhou. |
Extensão de ficheiro inválida | Apenas páginas web são suportadas. É um ficheiro PDF/TXT ou uma imagem (JPG, PNG, GIF). |
página grande | A página de destino tem mais de 2 MB. Páginas grandes não são suportadas. |
plataforma de segurança | A plataforma de segurança impede-nos de obter esta página. |
tempo limite | Tempo limite excedido. O motor não consegue processar a página em 30 segundos. Por favor, tente novamente mais tarde. |
geral | Erro inesperado. Por favor, tente novamente mais tarde. |
Exemplo
curl https://api.printfriendly.com/v1/pdfs/create /
-u your_api_key: /
-d page_url=https://test.test
Entrada 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"}
Limitação da Taxa de Pedidos
A API tem um limite de 60 pedidos por minuto. Se ultrapassar este limite, receberá uma resposta com Status: 429 Pedidos em excesso.
Cabeçalho | Descrição |
|---|---|
Limite de taxa-X | Limite total de pedidos para o período atual. |
X-Limite Restante | Pedido restante para o período atual. |
Redefinir X-RateLimit | Quantidade de segundos até ao fim do período atual. |
Exemplo com parâmetro 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