什麼是 API ?

API (Application Programming Interface)

API 為 Application Programming Interface 的縮寫,API 就是一個介面,可以泛指所有你在操作應用系統時所用到的東西,這裡有一部很棒的影片介紹什麼是 API。

這裡我們可以再用一個投飲料的例子來想像一下,假設你正在日本玩,你口渴了想喝飲料,然後找到了一台販賣機,

img

你投錢後按了某處的綠茶,然後過了 1 秒你就從取物口中拿到了綠茶,

img

這在日本街頭隨處可見的購買行為其實就隱含著 API 的概念,自動販賣機上的飲料圖示 + 按鈕就是 API,

你透過 API 向自動販賣機下訂單,自動販賣機也透過 API 理解你想喝什麼,接到需求後運轉一下最終透過取物口給你想要的結果,

所以 API 就是扮演 應用程式對應用程式 或 應用程式對使用者的 橋樑

img

而這橋樑可以以多種樣貌呈現。

API 樣貌

其實只要舉凡需要跟應用程式 溝通 的方式都可以算是 API,下圖呈現了較常用的 4 種:

  1. HTTP
  2. gRPC
  3. UI
  4. Command Line Interface
img

而一般在工作中提及的 API 通常大概率是指用 HTTP protocol 做為媒介實現的 Web server,該 API 也通常會透過 JSON 做為返回資料的格式,而其中大多會以 RESTful 風格做為開發 API 的方式,

img

對用 API 的人來說,我們只要看一下對方提供的 API 文件 就能了解我們該如何跟這個應用程式交互,例如這份 Facebook 的圖形 API 就有非常詳細的說明我們該如何使用,

而在使用 API 的過程時,大多時候我們也不太需要知道其內部應用程式是如何實作的,只要按照規則呼叫 API,然後等著拿期望的結果就好了!

另一種常見的 API 文件是用 Swagger,例如下圖就是用 Python 的 FastAPI 簡單實作的能取得電影資料的 API 文件。

此 API 並未使用 RESTful 風格開發 XDD

img

結論

API 這詞到現在已經變成了一種約定成俗的概念,就是只回覆資料不回覆介面的 Web server,但 API 的概念不僅是如此,做為一種跟應用程式交互的方式,其實萬物在網路上的服務都可看做是個 API,希望這篇文能小小幫助我們對 API 的理解。

tshine73
tshine73
文章: 66

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *