旧エクスポートURL
APIができる前は、通常の検索URLに?export=とキーを付けて結果をダウンロードしていました。これらのURLは今も、これまでとまったく同じく、バイト単位で同一の出力で動作します。廃止の予定はありません。
https://publicwww.com/websites/%22angular.min.js%22/?export=csv&key=YOUR_KEY
export= | 返される内容 |
|---|---|
urls | 1行に1つのURL。 |
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>ヘッダーで渡してください。以前の?key=形式も引き続き動作しますが、非推奨です。アドレスに含めたキーは、ブラウザの履歴やサーバーのログに残ってしまうためです。
APIと分けている理由
これらのURLは互換性レイヤーであり、そう位置づけておくことで、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= |
| URLのパスに含めたクエリ | query=、またはJSONの本文 |
api_status.xml | /v1/account |
列の並びは同じなので、通常はパーサーを変更する必要はありません。変わる点は、いずれも移行する価値のあるものです。
- 無効なキーには、行データの代わりに
Wrong API keyという文言を含む200ではなく、JSONの本文付きの401が返されます。 - リクエストが速すぎる場合、接続が最大30秒保留された後に拒否されるのではなく、
Retry-After付きの429がすぐに返されます。 - 利用枠を使い切るとエラーになります。旧URLでは、レスポンスで何も知らされないまま無料プランの上限に切り替わり、返される行が少なくなります。
- 途中で打ち切られた結果には、
X-Truncatedで印が付きます。 - ページ送りができるため、最初の20件を見るためにすべてをダウンロードする必要はありません。