iT邦幫忙

2026 iThome 鐵人賽

DAY 10
0
自我挑戰組

30天搞定科技背後的東西系列 第 10 篇

Day 10 : API 到底是什麼?

  • 分享至 

  • xImage
  •  

昨天講到 Database 的時候,我突然想到一個問題
如果一個 App 想要取得另一個系統的資料
那它到底要怎麼拿?

例如我們今天使用一個 App
這個 App 想要取得天氣資訊
難道它要直接跑去氣象公司的資料庫裡面,把資料全部拿出來嗎?

當然不是 😂

這時候就會出現一個很重要的東西:API

一、API 是什麼?
API 的全名是 Application Programming Interface
中文通常翻成應用程式介面

光看名字其實有點難理解
所以我一開始看到 API 的時候也是覺得這到底是什麼東西?

簡單來說
API 可以讓不同的軟體或系統按照規定的方式互相溝通
也就是說
一個系統可以透過 API 向另一個系統提出請求
然後取得它允許提供的資料或功能

二、可以把 API 想成餐廳的服務生
這是我覺得最容易理解 API 的方式!!

假設今天我去餐廳吃飯
我坐在位置上
廚房裡面有很多食材和設備
但我不會直接跑進廚房說
我要一份蛋炒飯
而是會先跟服務生說
我要一份蛋炒飯
服務生把我的需求送進廚房
廚房做好之後
服務生再把餐點送回來

這時候可以把它想成
我 → 服務生 → 廚房

API 就有點像這個服務生
它負責讓不同系統之間可以按照規則溝通

三、那 API 實際上在做什麼?
假設今天有一個天氣 App
它本身可能沒有辦法自己知道全世界每個地方現在幾度
所以它可以向提供天氣資料的服務提出請求
像是 請給我台北現在的天氣資料
對方的系統收到請求之後
就可以按照 API 的規則回傳資料
可能包含

  • 溫度
  • 天氣狀況
  • 濕度
  • 風速
  • 降雨機率

然後 App 再把這些資料整理成我們看到的畫面
所以我們看到的可能只是
台北 28°C ☁️

但背後其實可能經過了 API 的資料交換

四、API 為什麼這麼重要?
因為現在的軟體很少是完全獨立運作的
很多服務都需要跟其他系統合作
例如購物網站可能需要
金流系統、物流系統、會員系統、庫存系統
甚至還可能需要第三方登入服務

如果每一個系統都要自己重新做一次
開發起來會非常麻煩
所以透過 API
不同系統就可以按照規定的方式互相交換資料或使用功能

五、我們平常其實一直在用 API
這是我今天比較有感的一件事情
以前看到 API 這個名詞
會覺得它應該是工程師才會碰到的東西
但其實我們每天使用的 App
背後很可能都有 API 在工作

像是

  • 天氣 App 取得天氣資料
  • 購物網站取得付款結果
  • 地圖 App 取得地圖或位置相關資料
  • 外送 App 取得餐廳和訂單資訊
  • 網站的登入功能
    也可能需要和其他系統交換資料

所以我們雖然看不到 API
但其實每天都在使用它帶來的功能

六、API 是不是可以隨便拿資料?
當然不是啦!!
這也是我覺得滿重要的一點
API 通常會有自己的規則
像是
你可以要求什麼資料
你要用什麼格式提出請求
需要什麼權限
一次可以請求多少次
之類的

所以 API 比較像是一個有規則的窗口
不是只要知道 API 的存在
就可以把對方所有資料全部拿走

七、API 和 Database 有什麼關係?
昨天才剛講完 Database
今天又出現 API
其實這兩個東西可以一起工作

例如一個 App 想要取得使用者資料
可能會變成
App → API → Server → Database

Database 負責管理資料
Server 負責處理請求
API 則提供一個讓系統互相溝通的方式
最後資料再沿著這個流程回到 App

所以我們每天看到的一個簡單畫面
背後可能已經有很多不同的系統一起合作

八、心得
以前我以為不同 App 之間如果要交換資料
應該就是直接把資料丟來丟去
但今天才發現
其實中間會有很多規則和設計
API 就像是不同系統之間的溝通窗口
讓它們不用知道彼此所有的內部細節
只要按照規定的方式提出請求和接收結果就可以了
我覺得這也讓前幾天學到的東西開始慢慢串起來
Server、Database、API
原本看起來都是不同的專有名詞
但放在一起之後
就比較能想像一個網站或 App 背後到底是怎麼運作的

⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯

Day 11 預告
今天知道不同系統可以透過 API 溝通之後
我又想到一個問題
我們每天使用 Google 搜尋東西的時候
明明網路上有這麼多網站
為什麼我打幾個關鍵字
它就可以這麼快找到一大堆相關結果?

下一篇就來看看

Google 到底是怎麼找到我們想要的資料的? 🔍


上一篇
Day 9 : Database 到底是什麼?
下一篇
Day 11 : Google 搜尋為什麼這麼快?
系列文
30天搞定科技背後的東西 共 17 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言