API 是什麼? 3分鐘快速認識 API 應用程式介面

API 是 Application Programming Interface 的縮寫,API中文是「應用程式介面」。在電腦程式設計裡,應用程式介面 (API) 是用於打造應用程式軟體的一組副程式定義、協定與工具。

API 是指各種軟體組件之間一套明確定義的溝通方法。好的 API 提供模塊,並且由工程師將它們組合在一起,如此一來讓寫程式變得更簡單。

API 的使用者是「能夠寫程式的開發者」,開發者可以透過 API 去使用其他人撰寫的應用程式。

自學網頁開發,免費訂閱電子報,獲取更多技術新知、自學資源與市場趨勢文章

什麼是介面?

在解釋「應用程式介面」之前,我們先感受一下「介面」這兩個字,讓我們來看一個生活中使用 ATM 提款機時的情境:

  1. 使用者將提款卡插入提款機,然後輸入密碼。
  2. 螢幕跳出訊息詢問使用者是要轉帳、存款還是提款?
  3. 使用者點選了提款功能,並輸入提款金額。
  4. 吐鈔口吐出鈔票,然後列印出交易明細。

提款機是一種可互動的介面。使用者在操作時不需了解機器如何驗證身份、如何和其他銀行交換資料、甚至是提款機內有多少鈔票,所有的運作原理都被包裝在提款機裡面,使用者只需透過互動介面就能操作、使用提款機。

舉另外兩個例子,開汽車時的操作介面可能是方向盤、油門:

操作介面示意圖

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

操作介面示意圖2

你可以透過操作介面來使用機器的功能,因為機器開放了這些介面給你使用,而機器沒有開放的部分,例如汽車內部的引擎運作,只有能把汽車拆開來維修的師傅知道如何處理。

想成為了解API的網頁開發工程師,3 分鐘小測驗,找到你的學習起點

API —— 應用程式介面的例子

API 的使用者:工程師

需要注意的是,API 的使用者是「能夠寫程式的開發者」,舉例來說,美食平台的開發者想在餐廳資訊旁附上地圖資訊,若有能力,他可以自行開發地圖系統,但一般人沒有足夠的資源和精力這麼做,多半會選擇串接 Google Map API:

Google map API

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

google map api 使用者和工程師對比

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

網站與API request

因此,你不需要蒐集一個地圖資料庫,就能讓你的網站擁有地圖功能。

上述是請求「第三方 API」的例子,API 也有可能是團隊內部合作的工具,例如後端工程師與前端工程師透過 API 來合作,因此能各自管理各自的程式碼,事半功倍地完成成果且減少失誤。

使用 API 的好處

在 OpenSource 的時代,公家機關或大型公司往往會將手上的資料庫開放成 API,讓其他應用程式能夠使用這些資料,例如上述的 Google Maps API。開發產品的人有機會利用這些資料,創造更豐富的服務內容,例如許多外送或交通服務使用到了 Google Maps 的資料、購物車系統會串接銀行的資料、新聞服務可以串接氣象局的資料來即時提供天氣資料。

api 互動示意圖

從軟體開發的角度來看,近年來由於軟體開發日益複雜,將複雜的系統劃分成多個組成元件成為趨勢,工程師可能會分頭開發,再通過 API 的介面讓元件之間可以溝通,組合出完整的功能。

我們常使用的 GitHub 也是一種 API,如果沒有 GitHub,開發者就會需要自行架設遠端伺服器,才能進行多人協作。

延伸閱讀:Git與GitHub介紹,軟體版本控制基本教學

在移動設備當道的時代趨勢中,API 也日益重要。一個軟體服務可能會在多種設備上被人使用,例如手機、瀏覽器、穿戴式設備等,這些裝置必須要和同一個後端資料庫互動,才可能呈現出一致的內容。舉例來說,如果你透過電腦購買了商品,你應該要能在手機上查看到這筆交易的結果。

產品與API示意圖

為了實現上述功能,你會設計一個 API 介面,讓各個裝置的開發團隊共用同一個介面去使用資料庫,因此讓每個裝置都會呈現出最新的資料內容。

學習軟體開發實務、用 AJAX 串接第三方 API,申請試讀、瞭解更多內容