從麻瓜到魔法師的關鍵:認識 API (應用程式介面)

在上一堂課,你已經學會了基礎的程式語言 (JavaScript / Python)。你可以寫出一個迴圈印出 1 到 100,也可以寫一個判斷式來檢查分數是否及格。 但是,如果你想做一個「即時顯示全台灣天氣」的網站,你總不可能自己去全台灣各地量溫度,然後手動把資料打進程式碼裡吧?

這時候,你就需要 API (Application Programming Interface)

🍔 用「去餐廳吃飯」來秒懂 API

很多人看到「應用程式介面」這幾個中文字,每個字都認識,但合在一起就完全看不懂。 其實,API 就跟去餐廳點餐的流程一模一樣:

  1. 你 (前端網頁或手機 APP):肚子餓了,想吃牛肉麵。你不用知道廚房怎麼燉牛肉。
  2. 服務生 (API):你把點菜單交給服務生。服務生負責把你的需求,正確無誤地傳遞給廚房。
  3. 廚房 (後端伺服器與資料庫):收到服務生傳來的訂單,開始煮麵。煮好之後,把麵交給服務生。
  4. 服務生 (API):把熱騰騰的牛肉麵端到你的桌上。

在這個過程中,API 就是那個服務生。 你不需要知道天氣預報局的超級電腦是怎麼運算的(廚房),你只需要透過 API(服務生),告訴它:「給我台北市今天的溫度」。API 就會去後台把資料拿出來,並且以一種電腦看得懂的格式(通常是 JSON 格式)端給你。

🌍 為什麼 API 是軟體業最偉大的發明?

在沒有 API 的年代,如果 A 公司的系統想跟 B 公司的系統交換資料,工程師必須互相開放資料庫權限,這非常危險且難以維護。 有了 API 之後,世界變得完全不同了:

  • 不用重複造輪子:你想做一個地圖網站?不用自己發射衛星,直接呼叫 Google Maps API
  • 金流串接不再是惡夢:你想在網站上收費?不用自己去跟各大銀行談判,直接呼叫 ECPay (綠界科技) API 或是 Stripe API
  • 賦予網站 AI 靈魂:你想讓你的網站能自動回覆客服?直接呼叫 OpenAI API,你的網站瞬間就擁有了大腦。

只要你學會怎麼串接 API,你一個人就是一支軍隊。你可以把全世界最頂尖公司的技術,全部拼接進你自己的小網站裡。

💡 [實戰演練] 看看真實世界的 API 長怎樣

我們來看看一個公開、免費的 API。 請在你的瀏覽器(Chrome 或 Safari)網址列,輸入以下這串網址,然後按下 Enter:

https://api.github.com/users/github

這是一支由全球最大程式碼代管平台 GitHub 提供的 API,專門用來查詢使用者資料。 當你按下 Enter 後,你不會看到漂亮排版的網頁,你會看到一堆密密麻麻的文字,類似這樣:

{
  "login": "github",
  "id": 9919,
  "node_id": "MDEyOk9yZ2FuaXphdGlvbjk5MTk=",
  "avatar_url": "https://avatars.githubusercontent.com/u/9919?v=4",
  "type": "Organization",
  "name": "GitHub",
  "company": null,
  "blog": "https://github.com/about",
  "location": "San Francisco, CA",
  "public_repos": 519,
  "followers": 41927
}

這就是我們前面提到的 JSON (JavaScript Object Notation) 格式。

  • "name": "GitHub" 告訴你它的名稱。
  • "location": "San Francisco, CA" 告訴你它的公司位置。
  • "public_repos": 519 告訴你它有多少個公開的專案。

這就是前端工程師每天在看東西! 前端工程師的工作,就是把這堆醜醜的 JSON 文字抓回來,然後用 HTML/CSS 幫它們穿上衣服,變成你在手機上看到的那種漂亮卡片介面。

⚠️ [常見地雷區] JSON 格式的嚴格要求

在剛接觸 API 時,最常犯的錯誤就是「自己手寫 JSON 時語法錯誤」。 JSON 非常嚴格,它有幾個鐵律,只要違反一個,伺服器就會直接當機給你看:

  1. 必須用雙引號 ("):在 JSON 中,所有的「鍵 (Key)」和字串「值 (Value)」都必須用雙引號包起來。絕對不能用單引號 (')。
  2. 最後一個項目不能有逗號:這跟 JavaScript 不一樣。如果在 JSON 物件的最後一行加了逗號,就會引發致命錯誤。
  3. 不能寫註解:在 JSON 檔案裡面,不支援 ///* */ 這類的註解寫法。

Vibe Coder 秘訣: 身為 Vibe Coder,你其實不需要死記硬背這些規則。當你拿到一包不確定的資料格式時,直接貼給 Cursor 說:「這是一段 JSON 嗎?請幫我檢查並修復格式錯誤」,AI 秒速就能幫你找出少了雙引號的地方。

💼 [商業應用場景] API 經濟的變現模式

懂 API 不只能讓你寫出酷炫的網站,它本身就是一門好生意。

案例 1:串接與整合服務 (系統整合商) 很多傳產老闆有自己的進銷存系統,但他們想要讓業務在外面用 LINE 就能查庫存。 這時候,如果你能寫一支程式,一邊呼叫進銷存系統的 API,一邊呼叫 LINE Bot 的 API,把這兩端串起來。 這個「過路費系統」,在接案市場上的行情至少是 5 萬 ~ 10 萬台幣 起跳。

案例 2:自己賣資料 (資料供應商) 假設你對台股非常有研究,你寫了一支爬蟲每天去抓籌碼資料,並經過你的獨門演算法計算出「明天必漲名單」。 與其只放在自己的 Excel 裡看,你可以把這份名單包裝成一支 API (GET /api/stock-predictions)。 然後在網路上採取「訂閱制」,每個月付費 990 元的人,才能拿到呼叫這支 API 的權限 (Token)。 你從此脫離了出賣時間的打工仔,成為了躺著賺錢的「資料供應商」。

這就是 API 的魔力。在下一章,我們將教你如何使用工程師的超級武器:Postman,來優雅地測試這些 API。

常見問題與解決方案

| 問題 | 原因 | 解法 | |------|------|------| | 結果不如預期 | 參數設定不當 | 檢查預設值與邊界條件 | | 執行速度慢 | 演算法效率低 | 考慮使用更高效的資料結構 | | 記憶體不足 | 資料量過大 | 使用批次處理或串流方式 | | 難以除錯 | 缺乏日誌 | 加入詳細的 log 輸出 |

為什麼 API 改變了軟體開發?

在 API 普及之前,軟體開發是「單體式」的——整個系統寫在一起,彼此緊密耦合。廠商 A 要跟廠商 B 的系統串接?先開會三個月討論資料庫結構。

API 的出現讓一切變成「樂高積木」:

API 的三大革命

  1. 分工明確:前端只要知道 API 網址和格式,不需要管後端資料庫長怎樣
  2. 生態系統:Stripe 把金流包成 API,任何開發者 10 分鐘就能收款
  3. 商業模式:Twilio、OpenAI、Google Maps——這些公司把 API 當產品賣

你每天不知不覺在用的 API

| 服務 | 你不知道的 API | |:----|:-------------| | 叫 Uber | 地圖 API(Google Maps)+ 金流 API(Stripe)+ 推播 API(Firebase) | | Line 聊天 | 訊息 API(Line Messaging API)+ 圖片儲存 API(S3) | | Google 搜尋 | 搜尋 API + 廣告 API + 分析 API | | 網路購物 | 商品 API + 購物車 API + 金流 API + 物流 API |

每一樣你習以為常的數位服務,背後都是 API 在串接。

下一章預告:Postman 與 Fetch

知道了 API 是什麼之後,下一章我們開始動手——用 Postman 實際發送 API 請求、看懂回傳的 JSON 資料、以及用 Vibe Coding 寫出 Fetch 語法來串接 API。

會員專屬免費教學

本章節為註冊會員專屬的免費開放內容!請先登入或註冊會員,即可立即解鎖閱讀。

立即登入 / 註冊