As URLs de exportação antigas
Antes de existir uma API, os resultados eram baixados acrescentando
?export= e uma chave a uma URL de busca comum. Essas URLs continuam
funcionando exatamente como sempre funcionaram, byte a byte. Elas não vão
deixar de existir.
https://publicwww.com/websites/%22angular.min.js%22/?export=csv&key=YOUR_KEY
export= | Retorna |
|---|---|
urls | Uma URL por linha. |
csv | domain;rank |
csvu | url;rank |
csvsnippets | domain;rank;snippet |
csvsnippetsu | url;rank;snippet |
cluster | Salva os resultados como um cluster em vez de baixá-los. |
&delimiterColumns= e &delimiterSnippets=
mudam os separadores, e
https://publicwww.com/profile/api_status.xml informa o uso do dia
em XML. Envie a chave no cabeçalho
Authorization: Bearer <your api key>; a forma antiga
?key= ainda funciona, mas está obsoleta, porque uma chave no
endereço acaba no histórico do navegador e nos logs do servidor.
Por que elas são separadas
Essas URLs são a camada de compatibilidade, e mantê-las assim é o que permite que a API seja uma API moderna normal. A saída delas é fixada byte a byte por um teste que roda a cada mudança, para que um script escrito há anos continue interpretando o que sempre interpretou. Nada de novo é acrescentado a elas.
Como migrar um script
Os equivalentes mais próximos:
| Antigo | Novo |
|---|---|
?export=csv | format=csv |
?export=csvu | format=csv&columns=url,rank |
?export=urls | format=txt |
?export=csvsnippets | format=csv&snippets=1 |
?export=csvsnippetsu | format=csv&columns=url,rank,snippets&snippets=1 |
&key= | Authorization: Bearer |
&delimiterColumns= | delimiter= |
| a consulta no caminho da URL | query=, ou um corpo JSON |
api_status.xml | /v1/account |
As colunas são as mesmas, então em geral o parser não muda. O que muda vale a pena:
- Uma chave inválida gera
401com corpo JSON, e não200com as palavrasWrong API keyno lugar das linhas. - Requisições rápidas demais recebem
429na hora, com umRetry-After, em vez de a conexão ficar presa por até meio minuto e depois ser recusada. - Uma cota esgotada é um erro. Nas URLs antigas, você cai discretamente para os limites do plano gratuito e recebe menos linhas, sem nada na resposta que indique isso.
- Uma resposta encurtada vem marcada:
X-Truncated. - Paginação, para que um cliente não precise baixar tudo só para ver os primeiros vinte.