API 是什麼? 3分鐘快速認識 API 運作與使用方法

API 是什麼?

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

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

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

API 的運作方式:

  1. 請求(Request): 一個軟體應用(通常稱為客戶端)向另一個軟體應用(稱為服務器)發送一個請求。這個請求通常包含以下內容:
    • 一個動作,例如「獲取」(GET)數據或「更改」(POST/PUT)數據。
    • 要取得或更改的數據的識別符號(通常是URL)。
    • 可能的身份驗證信息,如 API 金鑰或 OAuth 令牌。
  2. 處理: 服務器接收到請求後,會根據 API 的規範來處理這個請求。這通常會涉及到讀取或寫入數據庫。
  3. 回應(Response): 處理完請求後,服務器會向客戶端發送一個回應。這個回應通常會包含以下內容:
    • 狀態碼(例如,200 表示「成功」,404 表示「未找到」)。
    • 任何被請求或修改的數據。
    • 額外的元數據,例如分頁資訊或錯誤訊息。
  4. 解析: 客戶端接收到回應後,會解析這個回應的內容,然後進行相應的操作,例如更新用戶界面或進一步處理數據。

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 來合作,因此能各自管理各自的程式碼,事半功倍地完成成果且減少失誤。

JavaScript 全端開發課程,16 週進度班帶你半年轉職工程師

使用 API 的好處

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

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

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

延伸閱讀:Git與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

在選擇和使用API時,有一些重要的考慮因素和步驟可以跟隨:

1. 明確需求 首先,你需要明確自己的需求。你希望API能夠實現哪些功能?這可能包括資料讀取、更新、刪除等。此外,你可能還需要考慮API的性能需求,例如調用頻率、響應時間等。

2. 研究API的文檔 API的文檔是其功能和使用方式的主要信息來源。一個好的API應該有詳細且易於理解的文檔,包括端點、請求方法、參數、響應格式等的詳細說明。此外,文檔應該包括錯誤碼的解釋和一些常見問題的解答。

3. 評估API的可靠性 API的可靠性關乎到應用程式的效能和用戶體驗。你可以通過檢查API的可用性、錯誤率、平均響應時間等來評估其可靠性。

4. 考慮API的兼容性 API需要與你的現有技術棧兼容。這意味著它應該能夠與你的程式語言、開發環境、資料庫等無縫集成。

5. 測試API 在正式採用API之前,應該先進行測試以確保其滿足你的需求。常見的API測試工具有 Postman、Insomnia、SoapUI 等,它們可以讓你模擬請求,並檢查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的使用更加便捷。

三分鐘小測驗,找到你學習 Web App 全端開發的入口