iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 23
0
Modern Web

我每天都接一個API系列 第 23

[30apis] Day 22:NYTimes API

紐約時報我就不多做介紹了。今天來看看紐約時報的 API。

在 NYTimes APIs 文件的頁面底下,可以看到一個許多不同 API 的列表。

  • Archive :提供一個 NYT 從 1851 以來的舊文列表
  • Article Search:搜尋 NYT 的文章,得到標題、大綱跟某些段落
  • Books:提供 NYT 書籍排行榜跟書評
  • Geo:將 Semantic API 的資料跟地理資料連結
  • Most Popular:提供一個根據分享、點閱、訂閱數量計算最受歡迎的文章列表
  • Movie Reviews:提供一個 NYT 評選的影評列表
  • Semantic:抓出跟 Article 裡有關連的人事物
  • Timeswire:得到 NYT 文章的連結跟 metadata
  • Times Tags:使用 NYT 的標籤
  • Top Stories:得到一系列精選文章跟圖片

有點令人困擾的是,他各個 API 的敘述框,大小是寫死的,太長的直接 overflow:hidden ,這也太偷懶了吧。
直接看列表很難理解他在寫啥。

這邊來申請一個 API Key:

然後 API Key 會以 Email 的方式寄給你。

在這邊我決定使用 Books API 來找新書排行榜跟書評。點進去列表的 Books API 那邊:

NYT 整體對於 API 的介紹跟解釋可以看 Readme,放在一個不太顯眼的右上方。

不過我們就直接來試試 API Console ,第一個: /lists.{format}

請求沒有成功,因為我忘了放參數。
參數細節在文件那邊的show details 可以看到:

有哪些參數可以放:

  • list (必選):要查詢的排行榜名稱,比方說e-book-function (電子書小說類)。所有的 list name 可以使用 ****/lists/names.{format} 的 endpoint 列出來
  • format(必選):可選 JSONJSONP
  • weeks-on-list:書在排行榜上停留的週數
  • bestseller-date:根據書賣的狀況,上排行榜的時間。有可能比出版日期早
  • date:排行榜放上 NYT 的時間
  • isbn:國際通用書碼
  • publish-date:出版日期
  • rank:指定在 bestseller-date 期間內的排行,如果是 1 那就是回傳第一名的書
  • rank-last-week:在 bestseller-date一週前的排行
  • offset:回傳資料的起始點
  • sort-order:資料排列方式,有ASCDSC

現在來實做看看。實作的時候,我改用了 ****``/lists/overview.json

var apiKey = "b4c64c44e2a44b01ae0274480ec204c4";
var url =
  "https://api.nytimes.com/svc/books/v3/lists/overview.json?api-key=" + apiKey;
function makeRequest() {
  xhr = new XMLHttpRequest();

  xhr.onload = function() {
    var response = JSON.parse(this.responseText);
    console.log(response);
  };
  xhr.open("GET", url, true);
  xhr.send();
}
makeRequest();

結果:

剩下只要把資料塞進 HTML 裡就好了。


上一篇
[30apis] Day 21:Google Map & GDELT Geo API
下一篇
[30apis] Day 23 : Bitext API (語意處理)
系列文
我每天都接一個API30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言