什麼是 API?白話文說明搞懂 API
API(Application Programming Interface)是一種讓軟體應用程式間可以相互溝通的工具,我們可以把 API 想像成一個橋樑,讓不同的軟體能夠彼此連接並共享資訊。
以日常生活的例子來說,你可以把 API 想像成自動販賣機或是提款機,當你按下想要的飲料或金額按鈕時,機器便會自動根據你的需求,提供你選擇的飲料或是提款金額。在這個例子中,飲料可以想成是你想要存取的數據,而機器按鍵就好比是 API,可以讓機器解讀你的需求,並給予你想要的數據。
以上觀念套用到軟體世界中,即是 API 定義了一組規則和協定,允許不同的軟體系統之間進行溝通。這些系統可以是不同的應用程式、服務或平台。透過 API,軟體可以請求(Request)其他軟體提供特定的功能、資料或服務,並接收相應的回應(Response)。
簡而言之,API 是一個讓軟體之間進行互動和共享資訊的工具,就像販賣機按鈕使我們得以和販賣機進行溝通,它提供了一個方便且標準的方式,讓不同的軟體能夠彼此合作,並在功能和資源上互相支援。
為什麼要使用 API?API 的運作方式
現今企業透過 API 開放資料已是日常,API 已成為絕大多數企業系統標準入口。根據 CloudMile 《2023 台灣 API 管理趨勢調查》報告顯示,有超過 9 成的企業擁有內部使用的 API,甚至已有將近 5 成的企業擁有「合作夥伴限定」的 API。以下統整使用 API 的幾大好處:
效率:API 提供了一種簡單且標準的方式,讓開發人員能夠隨時存取現有的軟體元件和服務,,避免重複開發同樣的系統功能,節省時間與成本。
資料共享與整合:API 允許不同的軟體系統之間進行互相溝通和交流,串接不同的平台與系統,從而實現跨系統的互操作性,也讓大型集團在整合內部子公司間的數據時容易許多。
滿足龐大的跨裝置存取需求:現今時代,人手一支手機、一台筆電,同樣一個軟體服務可能會在多個設備上被人使用,例如手機、網頁和穿戴式設備等,而這些裝置必須要和同一個後端資料庫互動,才有可能呈現出一致的內容。而 API 便能協助實踐這些日常應用場景,透過讓各個裝置負責開發的團隊可以共用同一個 API 來使用與存取資料庫。
API 如何運作?
API 架構通常會透過用戶端和伺服器來說明。傳送要求的應用程式稱為「用戶端」,傳送回應的應用程式則稱為「伺服器」。API 有四種不同的運作方式,取決於它們建立的時機以及原因:
-
SOAP API:
SOAP API(Simple Object Access Protocol API)是一種用於通信和資料交換的協定,它基於 XML 格式傳遞訊息。儘管 SOAP API 曾經是較為常用的 API 協定,但消息格式較複雜和冗長的,使用頻率有下降;然而,對於特定的企業應用和舊有系統的集成,SOAP API 仍然具有價值。 -
RPC API:
這些 API 稱為遠端程序呼叫 (Remote Procedure Call)。用戶端在伺服器上完成功能 (或程序),伺服器便會將輸出傳回用戶端,允許遠端用戶端呼叫伺服器上的程序。 -
WebSocket API:
WebSocket API 可以實現伺服器主動推送資料給客戶端,而不需要客戶端不斷地發送 Request,使得回應可以更即時,進而提升網頁的通訊速度。 -
REST API:
REST API 是一種在 Web 上最常見的 API。用戶端會向伺服器發送請求,並將資料作為請求的一部分傳送給伺服器。伺服器根據用戶端的輸入啟動相應的內部功能,將處理後的資料作為回應返回給用戶端,這種方式可以讓用戶端和伺服器之間進行資料的交換和互動。
自 2017 年 11 月起的 Hello Robi 1.0 系列,CloudMile 不僅向開發者介紹雲端存儲平台,更專程設計課程讓聽眾能在短時間了解 Google API。本文將擷取活動精髓: API 入門概念,相信連不會 Coding 的你也能了解各種 API 與日常生活中的相關應用。
這次介紹的 Google API 主要依從人類基礎的四種能力:聽說讀寫衍伸而成,以下將介紹 Vision API、Speech API、Translation API、Natural Language API、Video Intelligence API。
Vision API
Vision API 就像是 Google 的照片搜尋功能,主要能夠讓機器辨識物件,如人臉、商標 Logo、圖片中的文字,還可以偵測是否有暴力內容等等。簡單而言,Vision API 會自動辨認照片出現的物品並逐一標記標籤。
以下圖旅行青蛙的明信片舉例,將選定的圖片傳入 Vision API,將會自動偵測相關標籤,如圖中所示有 Green、Cartoon 等。
相關 Vision API 實作教學可參考:動手玩玩 Google Cloud Vision API