舊版匯出網址
在 API 推出之前,下載結果的方法是在一般搜尋網址後加上 ?export= 及 Token。這些網址至今仍可使用,與以往完全一樣,逐位元組相同。它們不會被取消。
https://publicwww.com/websites/%22angular.min.js%22/?export=csv&key=YOUR_KEY
export= | 返回內容 |
|---|---|
urls | 每行一個網址。 |
csv | domain;rank |
csvu | url;rank |
csvsnippets | domain;rank;snippet |
csvsnippetsu | url;rank;snippet |
cluster | 把結果保存為網域集,而不是下載。 |
&delimiterColumns= 及 &delimiterSnippets= 可更改分隔符,https://publicwww.com/profile/api_status.xml 則以 XML 報告當日用量。請在 Authorization: Bearer <your api key> 標頭中傳送 Token;舊的 ?key= 寫法仍然可用,但已不建議使用,因為放在網址中的 Token 會留在瀏覽器記錄及伺服器日誌中。
為何要分開
這些網址是相容層,正因為讓它們保持原樣,API 才能成為一個正常的現代 API。它們的輸出由一項在每次改動時都會運行的測試鎖定,逐位元組不變,因此多年前寫成的腳本仍能解析它一向解析的內容。它們不會再加入任何新功能。
遷移腳本
最接近的對應寫法:
| 舊版 | 新版 |
|---|---|
?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= |
| 網址路徑中的查詢 | query=,或 JSON 內容 |
api_status.xml | /v1/account |
欄位一一對應,因此解析器通常無須改動。而改變了的部分,都是值得擁有的:
- 無效的 Token 會返回帶 JSON 內容的
401,而不是返回200,並在原本應是結果的位置寫上Wrong API key。 - 請求太頻密時會立即返回
429及Retry-After,而不是把連線佔住最長半分鐘後才拒絕。 - 配額用完會返回錯誤。在舊版網址上,它會靜靜把您降到免費方案的限制,返回較少結果,而回應中沒有任何說明。
- 被縮短的回應會有標示——
X-Truncated。 - 支援翻頁,用戶端無須下載全部結果,就能查看前二十項。