**一、前言
昨天實際使用書籍 API 搜尋了不同的書籍,
也發現只要改變搜尋條件,
API 回傳的結果就會跟著改變。
那麼問題來了
API到底是怎麼知道我們想搜尋什麼的?
答案就是透過「參數」
Day4介紹過URL、Endpoint和Parameters,
今天就把這些概念放回書籍API中,
實際觀察搜尋參數的作用。
⸻
**二、 什麼是搜尋參數?
搜尋參數可以想像成我們提供給 API 的「搜尋條件」。
例如:
?q=Harry+Potter
其中
q是參數名稱
Harry+Potter是我們輸入的搜尋內容
API收到這個Request後,
就會根據這個條件搜尋相關資料再將結果回傳。
所以URL可以簡單看成:
API Endpoint + 搜尋參數 → API Server → 搜尋結果
這和我們平常使用網站搜尋東西其實很像。
在搜尋引擎輸入「Harry Potter」,
網站就會根據這個條件找到相關結果,
API的概念也類似,
只是最後回傳的通常不是一個完整的網頁,
而是結構化的資料。
⸻
**三、 比較用不同關鍵字搜尋
接下來測試幾個不同的關鍵字,
例如
Harry:
https://openlibrary.org/search.json?q=Harry&utm_source=chatgpt.com
Harry Potter:
https://openlibrary.org/search.json?q=Harry+Potter&utm_source=chatgpt.com
Potter:
https://openlibrary.org/search.json?q=Potter&utm_source=chatgpt.com
可以比較這三次搜尋的結果
雖然都是在搜尋 Harry Potter 相關內容,
但因為輸入的條件不同API找到的資料也可能不同。
可以觀察到
只搜尋Harry的話搜尋到的書籍數量最多
但作者和出版時間都是一樣的
JSON的整體結構也大致相同
⸻
**五、 參數的重要性
如果 API 沒有搜尋參數,
我們可能只能取得 API 預設提供的資料。
加入參數之後就可以告訴 API:
「我現在想找的是這個。」
例如書籍 API 可以透過搜尋條件找到不同的書籍,
而其他類型的 API 也可以使用參數進行不同的查詢。
像是電影 API 可以搜尋電影名稱,天氣 API 可以指定地點。
參數其實是 API 非常重要的一部分。
同一個 Endpoint,
只要提供不同的參數就可能得到完全不同的資料。
⸻
**六、 實作結果
今天透過修改書籍 API 中的搜尋參數,
測試不同關鍵字所得到的結果。
從實際操作可以發現,
Request 中的參數會影響 API 最後回傳的資料。
也讓我更清楚理解之前學到的:
URL → Endpoint → Parameters → Request → Response → JSON
這不再只是概念,而是可以直接透過 API 操作觀察到的結果。
⸻
**七、 總結
今天主要學習了書籍 API 中搜尋參數的作用。
透過修改搜尋關鍵字,
可以讓同一個 API 查詢不同的書籍資料,
也可以比較不同參數所造成的結果差異。
這也讓我了解到,
使用 API 時不只是「把網址打開」而已,
更重要的是要知道如何透過參數告訴 API 自己需要什麼資料。
下一篇會進一步觀察書籍 API 回傳的 JSON 資料內容,看看一筆書籍資料裡到底包含哪些資訊。