API 如何運作?

API 允許應用程式透過傳送和接收 API 呼叫來交換資訊。

學習目標

閱讀本文後,您將能夠:

  • 描述 API 如何工作
  • 區分 API 端點和客戶端
  • 比較不同的 API 協議

相關內容


想要繼續瞭解嗎?

訂閱 TheNET,這是 Cloudflare 每月對網際網路上最流行見解的總結!

請參閱 Cloudflare 的隱私權政策,了解我們如何收集和處理您的個人資料。

複製文章連結

API 如何運作?

應用程式設計介面 (API) 允許軟體程式透過傳送和接收 API 呼叫或要求資訊來彼此通訊。 這些要求由 API 用戶端啟動,並由 API 端點接受。

為了在 API 之間交換信息,開發人員必須提供 API 文檔,描述 API 可以接受的請求類型,它旨在支持的用例以及任何其他條件(例如, 協議,架構和安全要求)需要第三方遵循。

API 調用允許 API 共享功能,而不需要開發人員從頭開始為每個單獨的應用程序重寫功能。 沒有它們,開發人員將無法輕鬆地跨多個應用程序複製功能或向其他應用程序,服務和提供商請求數據。

什麼是 API?

API 是一個允許軟件程序共享數據和功能的接口。 這種通信方法有助於增強大多數現代 Web 應用程序的功能。

例如,假設愛麗絲開發了一個應用程序,可以根據聽眾的心情自定義古典音樂播放列表。 她可以使用連接到外部音樂存儲庫的 API,而不是手動輸入數千首曲目來填充這些播放列表,這樣做可以節省時間,金錢和開發挑戰。

API 的使用案例幾乎是無限的。 它們連接 雲端服務、查詢資料庫、自動更新行動應用程式、將內容串流至多個裝置、彙總航班價格和食品配送選項等等。

什麼是 API 客戶端?

API 用戶端 (有時稱為「使用者」) 是起始 API 呼叫的軟體。

API 用戶端必須先驗證其身分,才能與 API 端點互動。 這有助於防止攻擊者利用 API 來執行 分散式拒絕服務 (DDoS) 攻擊 或其他惡意動作。

通常,驗證透過以下四種方法之一執行:唯一字串(API 金鑰)、使用者名稱和密碼組合、OAuth 權杖mutual TLS。使用增強式驗證方法是開發人員保護 API 免受攻擊的方法之一。(進一步瞭解 API 安全性。)

API 端點是什麼?

API 端點 接受 API 調用並返回請求的信息。

API 用戶端和端點都是指託管在伺服器上的軟體程式,而非獨立的硬體裝置。 API 伺服器可能會託管多個端點,每個端點都會指派統一資源識別碼 (URI),讓 API 用戶端能夠找到該端點。 在大多數情況下,此 URI 是統一資源定位器(URL),它指向基於 Internet 的位置(例如網站)。

什麼是 API 結構描述?

API 結構描述是定義 API 請求必須符合的規範才能被視為有效的中繼資料。 這些規格可能包括詳細資料,包括目標端點、HTTP 方法和開發人員建立的其他需求。

從用戶端傳送 API 呼叫時,它必須符合結構描述中所述的條件。 只有這樣,API 端點才能返回請求的信息。 從角度來看,想像 Bob 正在計劃舉辦派對。 在邀請函中,他指定聚會結束後,只有帶上黃色雛菊的客人才能獲得感謝卡。 但是,如果卡羅爾決定帶紅玫瑰參加派對,她之後將不會收到感謝卡。

同樣地,不符合 API 結構描述設定之需求的 API 呼叫也不會收到回應。

什麼是 API?

就像 API 本身一樣,API 呼叫會根據 API 文件中概述的規格而有所不同。 但是,一般來說,API 調用遵循三個基本步驟:

  1. API 用戶端會啟動 API 呼叫,或要求取得資訊。 API 用戶端必須根據 API 端點提供的通訊協定和結構描述來格式化要求。
  2. API 端點會接收要求。 接著,API 端點會驗證 API 用戶端,並驗證 API 結構描述。 這有助於確保 a)呼叫來自經過驗證的來源,並且 b)已滿足請求的條件。
  3. API 端點會將要求的資訊傳回給 API 用戶端。 API 結構描述會決定可傳回給用戶端的回應類型。

有關 API 調用的更深入的解釋,請閱讀 什麼是 API 調用?

API 使用哪些通訊協定和架構?

API 受到幾種不同的通訊協定支援。 協議 是通過網絡進行通信的一種方法; 它告訴 API 如何格式化請求和響應。 所使用的 API 通訊協定類型取決於開發 API 的目的、所提供的使用案例以及所承載的限制。

兩種最常見的 API 通訊協定是簡單物件存取通訊協定 (SOAP) 和遠端程序呼叫 (RPC)。 代表性狀態傳輸(REST)是一種通常與這些協議進行比較的軟件架構。

SOAP 提供在使用不同作業系統和架構的 API 之間傳送和接收呼叫的標準化方法。 它也與 超文本傳輸協議(HTTP),文件傳輸協議(FTP), 簡單郵件傳輸協議(SMTP)和其他應用層協議兼容。 它只能使用可擴展標記語言(XML)將數據返回給 API 客戶端。

RPC 是 API 之間通信的最簡單和最古老的方法之一。 它通過啟動 遠程程序調用來工作,在此期間客戶端從遠程服務器請求一個函數。 RPC 和 SOAP/REST 之間的主要區別在於 RPC 可以幫助執行特定的操作(或功能),而 SOAP/REST 則用於檢索資源(或數據)。

REST 是指 R EST 體系結構,它部分決定了 API 調用的格式化方式。 簡而言之,REST 允許客戶端從服務器請求資源,該服務器將信息以當前狀態返回給客戶端。 REST API 通常使用 HTTP 通訊協定來格式化要求和回應,但也與 (FTP)、SMTP 和其他項目相容。 他們可以使用多種不同的格式,包括 XML,JavaScript 對象符號(JSON)和超文本標記語言(HTML)將數據返回給 API 客戶端。

API 是否容易受到安全風險?

就像任何連接到網絡的東西一樣,API 很容易受到利用和濫用。 常見的 API 攻擊包括:

  • 基於身份驗證的攻擊:身份驗證是確保從合 法來源發送和接收 API 調用的關鍵部分。 但是,攻擊者仍然可以通過攔截身份驗證令牌,竊取 API 密鑰或使用其他策略來獲取機密憑據來繞過這些措施進行攻擊。
  • 漏洞攻擊:API 漏洞(例如損壞的對象級別授權,損壞的用戶身份驗證,過多的數據暴露以及 OWASP API 安全性 Top 10 的其他漏洞)是指 API 中的缺陷,可能允許攻擊者未經許可訪問它們。 通過利用這些缺陷,攻擊者可以執行數據洩露或使用 API 發動更複雜的攻擊。
  • DDoS 攻擊:攻擊 者可能會使用容量流量淹沒 API,試圖中斷(或完全停止)其提供的服務。

Cloudflare API 閘道透過提供強式身份驗證、掃描有效負載的敏感資料、驗證 API 結構描述,以及偵測和防止 API 濫用,協助減輕這些攻擊。 進一步了解 雲火炬 API 閘道