API 是 Application Programming Interface 的縮寫,API中文是「應用程式介面」。在電腦程式設計裡,應用程式介面 (API) 是用於打造應用程式軟體的一組副程式定義、協定與工具。
API 是指各種軟體組件之間一套明確定義的溝通方法。好的 API 提供模塊,並且由工程師將它們組合在一起,如此一來讓寫程式變得更簡單。
API 的使用者是「能夠寫程式的開發者」,開發者可以透過 API 去使用其他人撰寫的應用程式。
自學網頁開發,免費訂閱電子報,獲取更多技術新知、自學資源與市場趨勢文章
什麼是介面?
在解釋「應用程式介面」之前,我們先感受一下「介面」這兩個字,讓我們來看一個生活中使用 ATM 提款機時的情境:
- 使用者將提款卡插入提款機,然後輸入密碼。
- 螢幕跳出訊息詢問使用者是要轉帳、存款還是提款?
- 使用者點選了提款功能,並輸入提款金額。
- 吐鈔口吐出鈔票,然後列印出交易明細。
提款機是一種可互動的介面。使用者在操作時不需了解機器如何驗證身份、如何和其他銀行交換資料、甚至是提款機內有多少鈔票,所有的運作原理都被包裝在提款機裡面,使用者只需透過互動介面就能操作、使用提款機。
舉另外兩個例子,開汽車時的操作介面可能是方向盤、油門:

煮咖啡時的介面是操作面板:

你可以透過操作介面來使用機器的功能,因為機器開放了這些介面給你使用,而機器沒有開放的部分,例如汽車內部的引擎運作,只有能把汽車拆開來維修的師傅知道如何處理。
想成為了解API的網頁開發工程師,3 分鐘小測驗,找到你的學習起點
API —— 應用程式介面的例子
API 的使用者:工程師
需要注意的是,API 的使用者是「能夠寫程式的開發者」,舉例來說,美食平台的開發者想在餐廳資訊旁附上地圖資訊,若有能力,他可以自行開發地圖系統,但一般人沒有足夠的資源和精力這麼做,多半會選擇串接 Google Map API:

Google 公司開發了 Google Map 提供給大眾使用,同時他們也開發了一系列的 Google Map API 給開發者使用。開發者可以在 Google 提供的 Google Map API 說明文件 (如下圖右) 裡查看 API 的使用說明,並且按照文件將地圖串接到自己的網站上:

只要用指定的方式發出請求 (request),將餐廳地址成功發送給 Google Map API,Google Map 就會回應 (response) 地圖資訊:

因此,你不需要蒐集一個地圖資料庫,就能讓你的網站擁有地圖功能。
上述是請求「第三方 API」的例子,API 也有可能是團隊內部合作的工具,例如後端工程師與前端工程師透過 API 來合作,因此能各自管理各自的程式碼,事半功倍地完成成果且減少失誤。
使用 API 的好處
在 OpenSource 的時代,公家機關或大型公司往往會將手上的資料庫開放成 API,讓其他應用程式能夠使用這些資料,例如上述的 Google Maps API。開發產品的人有機會利用這些資料,創造更豐富的服務內容,例如許多外送或交通服務使用到了 Google Maps 的資料、購物車系統會串接銀行的資料、新聞服務可以串接氣象局的資料來即時提供天氣資料。

從軟體開發的角度來看,近年來由於軟體開發日益複雜,將複雜的系統劃分成多個組成元件成為趨勢,工程師可能會分頭開發,再通過 API 的介面讓元件之間可以溝通,組合出完整的功能。
我們常使用的 GitHub 也是一種 API,如果沒有 GitHub,開發者就會需要自行架設遠端伺服器,才能進行多人協作。
在移動設備當道的時代趨勢中,API 也日益重要。一個軟體服務可能會在多種設備上被人使用,例如手機、瀏覽器、穿戴式設備等,這些裝置必須要和同一個後端資料庫互動,才可能呈現出一致的內容。舉例來說,如果你透過電腦購買了商品,你應該要能在手機上查看到這筆交易的結果。

為了實現上述功能,你會設計一個 API 介面,讓各個裝置的開發團隊共用同一個介面去使用資料庫,因此讓每個裝置都會呈現出最新的資料內容。
常見的 API 類型
- 天氣 API – 用於取得天氣資料,如預報、天氣現況、歷史資料等。應用程式和網站可以使用天氣 API 來顯示天氣資訊。
- 地圖 API – 用於顯示地圖和取得位置資料。應用程式可以使用地圖 API 來顯示地圖、取得方向、尋找附近地點等。Google Maps 是最熱門的地圖 API。
- 付款 API – 用於接受付款、處理交易、處理資金轉帳等。電子商務網站和應用程式使用付款 API 來從客戶收款。例如 Stripe、PayPal 和 Square。
- 語言 API – 用於分析文字和處理自然語言。應用程式可以使用語言 API 來翻譯文字、提取關鍵詞、分析評論的情緒、總結長文章等。Google Cloud Natural Language 是其中一個例子。
- 產品 API – 用於取得產品資料,如圖片、價格、描述、評論等。電子商務網站使用產品 API 來向客戶顯示產品和資訊。一些產品 API 包括 Amazon 產品廣告 API 和 eBay Finding API。
API 被用來整合應用程式的額外資料和功能。上面這些例子是一些最常見的 API 類型,但是還有許多其他用途的 API。
API 常用工具
- Postman – Postman是一個很受歡迎的API開發環境。它允許你輕鬆傳送API請求和查看回應。延伸閱讀:API測試工具Postman 新手教學
- Insomnia – 與Postman類似,Insomnia是一個GUI平台,用於測試和開發API。它允許你導入/導出數據、保存環境、使用插件等。
- Paw – Paw是一個全功能的API開發工具,適用於Mac。它提供了一個乾淨的界面來傳送請求、保存API、查看文件、使用變量/腳本等功能。
- rapidapi – rapidapi平台允許你找到和連接數千個API。它處理身份驗證、快取、監控等。你可以按類別瀏覽API,或搜尋要在應用程序中使用的特定API。
- Mockable – Mockable是一個API模擬伺服器。它允許你輕鬆創建自定義的API回應(模擬),所以你可以在API實際準備就緒之前開發和測試你的應用程序。
這些工具使得與API的互動更加容易。無論是傳送請求,查看回應、保存API、模擬回應,還是找到新API來使用,API工具可以加快開發速度和使API的使用更加便捷。