應用程序編程接口 —API
什么是 API?
API(即應用程序編程接口)是一組規則或協議,允許軟件應用程序相互通信以交換數據、特性和功能。
API 允許開發人員集成其他應用程序的數據、服務和功能,而不是從頭開始開發,從而簡化了應用程序開發。API 還為應用程序所有者提供了一種簡單、安全的方式,使其組織內的內部部門可以使用其應用程序數據和功能。應用程序所有者還可以向業務合作伙伴或第三方共享或營銷該數據和功能。
API 的工作原理
了解 API 工作原理的一個簡單方法是查看一個常見示例——第三方支付處理。當用戶在電子商務網站上購買產品時,系統可能會提示他們“使用 Paypal 付款”或其他類型的第三方系統。此功能依賴 API 來建立連接。
當買家點擊付款按鈕時,API 會調用以檢索信息(也稱為請求)。此請求通過 API 的統一資源標識符 (URI) 從應用程序到 Web 服務器進行處理,包括請求動詞、標頭,有時還包括請求正文。
從產品網頁收到有效請求后,API 會調用外部程序或 Web 服務器,在本例中為第三方支付系統。
服務器向 API 發送包含所請求信息的響應。
API 將數據傳輸到初始請求的應用程序,此處為產品網站。
雖然數據傳輸會根據所使用的 Web 服務而有所不同,但請求和響應都是通過 API 發生的。用戶界面不可見,這意味著 API 在計算機或應用程序內交換數據,并在用戶看來是無縫連接。
API 類型
如今,大多數 API 都是 Web API,它們通過互聯網公開應用程序的數據和功能。以下是 Web API 的四種主要類型:
開放 API是可以通過 HTTP 協議訪問的開源應用程序編程接口。也稱為公共 API,它們定義了 API 端點以及請求和響應格式。
合作伙伴 API 連接戰略業務合作伙伴。通常,開發人員通過公共API 開發人員門戶以自助服務模式訪問這些 API 。盡管如此,他們仍然需要完成入職流程并獲得登錄憑據才能訪問合作伙伴 API。
內部 API 對外部用戶保持隱藏。這些私有 API 不適用于公司外部的用戶,而是旨在提高不同內部開發團隊之間的生產力和溝通。
復合 API組合了多個數據或服務 API。它們允許程序員在一次調用中訪問多個端點。復合 API 在微服務架構中非常有用,在微服務架構中執行單個任務可能需要來自多個來源的信息。
API協議
隨著 Web API 使用的增加,導致了某些協議的開發。這些協議為用戶提供了一組定義的規則或 API 規范,用于創建可接受的數據類型命令和語法。實際上,這些 API 協議促進了標準化信息交換。
- SOAP(簡單對象訪問協議): SOAP 使用 XML 構建,使端點能夠通過 SMTP 和 HTTP 發送和接收數據。SOAP API 使在不同環境中運行或以不同語言編寫的應用程序或軟件組件之間共享信息變得更加容易。
- XML-RPC(XML-Remote procedure Call): XML-RPC協議依賴于特定的XML格式來傳輸數據。XML-RPC 比 SOAP 更古老,但簡單得多,并且相對輕量級,因為它使用最小的帶寬。
- JSON-RPC: 與 XML-RPC 一樣,JSON-RPC 是遠程過程調用,但使用 JSON(JavaScript 對象表示法)而不是 XML 來傳輸數據。
- REST(表述性狀態傳輸): REST 是一組 Web API 架構原則。REST API(也稱為 RESTful API)是遵守某些 REST 架構約束的 API??梢允褂?SOAP 協議構建 RESTful API,但這兩個標準通常被視為相互競爭的規范。
傳統上,API 是指連接到使用任何低級編程語言(例如 JavaScript)創建的應用程序的接口。然而,現代 API 遵循 REST 原則和 JSON 格式。它們通常是為 HTTP 構建的,從而產生對開發人員友好的界面,這些界面很容易被用Java、Ruby、Python 和許多其他語言編寫的應用程序訪問和廣泛理解。
API相關技術 API 與 Web 服務
Web 服務是一種可以通過網址訪問并促進數據傳輸的軟件組件。由于 Web 服務將應用程序的數據和功能公開給其他應用程序,因此實際上每個 Web 服務都是一個 API。然而,并非每個 API 都是 Web 服務。
API 是充當兩個斷開連接的應用程序之間中介的任何軟件組件。雖然 Web 服務也連接應用程序,但它們需要網絡才能實現。有些 API 是開源的,而 Web 服務通常是私有的,只有經過批準的合作伙伴才能訪問它們。
API、微服務和云原生開發
微服務是一種架構風格,它將應用程序劃分為更小的獨立組件(也稱為微服務),并使用 REST API 連接。將應用程序構建為一組單獨的服務,使開發人員能夠獨立于其他應用程序組件來工作,并使應用程序更易于測試、維護和擴展。
隨著云計算的興起,微服務架構變得越來越普遍,它與容器 和 Kubernetes一起成為云原生應用程序開發的基礎。
- 02-22
- 02-22
- 01-23
- 01-22
- 01-16
- 01-03
- 12-12
- 11-20