iT邦幫忙

2026 iThome 鐵人賽

DAY 8
0
Software Development

Web API:從零開始探索公開 API 與資料應用系列 第 8

Day 8|第一次使用書籍API:從API取得書籍資料

  • 分享至 

  • xImage
  •  

**一、前言

前七天主要都是在學習Web API的基本概念,
從API是什麼開始,
到 HTTP、Request、Response、GET、Parameters、JSON、Status Code,
以及最後介紹Swagger。

今天開始就要正式進入實際操作,
這一週預計使用「書籍API」作為第一個實作案例,
透過API取得不同書籍的相關資料,
並觀察這些資料是如何被整理與回傳的。

今天先從最基本的問題開始:
書籍API可以做什麼?

二、什麼是書籍API?

書籍API簡單來說,
就是可以提供書籍相關資料的API。
當我們向書籍API發送Request時,
API Server就可以根據我們提供的條件,
回傳符合條件的書籍資訊。

例如可能取得:

  • 書名
  • 作者
  • 出版日期
  • ISBN
  • 書籍介紹
  • 出版社
  • 書籍封面
    所以如果今天要製作一個「書籍搜尋網站」,
    就不一定需要自己建立大量的書籍資料。
    可以透過API向其他服務取得資料,
    再將這些資料顯示在自己的網站或App中。

可以簡單理解成:
使用者→書籍搜尋網站→GET Request→書籍 API→JSON Response→書籍資料

**三、今天要觀察哪些資料?

因為這是第一次實際使用書籍API,
所以今天不需要一次研究所有欄位。
會先選擇幾個比較容易理解的資料,例如:
title
author
published
description

分別可以對應到:
title → 書名
author → 作者
published → 出版資訊
description → 書籍介紹

**四、實際操作:第一次查詢書籍API

使用手機就可以完成操作不需要另外安裝程式。
操作步驟:

  1. 打開手機瀏覽器
  2. 開啟選定的公開書籍API
    https://openlibrary.org/search.json?q=Harry+Potter&utm_source=chatgpt.com
  3. 找到可以查詢書籍的GET Endpoint
  4. 輸入一個自己想搜尋的書名或關鍵字
  5. 發送Request
  6. 觀察API回傳的JSON
  7. 找出書名、作者等資料
  8. 將結果截圖保存下來
    https://ithelp.ithome.com.tw/upload/images/20260922/20178901sRj7akhpSp.jpg

例如搜尋一本書後,API 可能會回傳:
{
"title": "Book Title",
"author": "Author Name",
"published": "2020"
}
這時候就可以從JSON中找出:

書名 → Book Title
作者 → Author Name
出版年份 → 2020

今天的重點不是把JSON裡面的每一個欄位都看懂,
而是先熟悉「透過API搜尋資料」的流程。

**五、第一次使用書籍API的感受

在還沒有接觸API之前,
如果想要查詢書籍資料,
可能會直接想到使用Google或其他書籍網站。
但透過API後,
可以直接向資料服務提出Request,
取得程式可以處理的資料。
而且回傳的JSON已經按照一定的結構整理好,
之後如果要讓程式讀取這些資料,
就可以直接根據欄位取得需要的內容。
這也讓我比較能理解API在實際應用中的用途。
不只是單純「查資料的網址」,
而是一種讓不同系統可以取得資料並進行應用的方式。

**六、總結

今天正式開始實際使用書籍API,
第一次透過GET Request查詢書籍資料,
並從JSON Response中找出書名、作者等資訊。

透過今天的操作,
可以把前幾天學到的概念實際串在一起:
GET → Endpoint → Parameters → Request → API Server → Status Code → JSON Response

接下來幾天會繼續使用這個書籍API進一步研究不同的搜尋方式。

下一篇會開始嘗試:
如何使用API搜尋指定的書籍?
並觀察修改搜尋條件後API回傳的資料會有什麼不同。


上一篇
Day 7|Swagger是什麼?用Swagger測試API
系列文
Web API:從零開始探索公開 API 與資料應用8
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言