기존 내보내기 URL
API가 생기기 전에는 일반 검색 URL에 ?export=와 키를 붙여 결과를
다운로드했습니다. 이 URL은 지금도 예전과 바이트 단위까지 똑같이 작동합니다.
앞으로도 없어지지 않습니다.
https://publicwww.com/websites/%22angular.min.js%22/?export=csv&key=YOUR_KEY
export= | 반환 내용 |
|---|---|
urls | 한 줄에 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=도 여전히 작동하지만, 주소에 넣은 키는 브라우저 기록과 서버 로그에
남기 때문에 더 이상 권장하지 않습니다.
따로 유지하는 이유
이 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개만 보려고 전체를 다운로드할 필요가 없습니다.