應用程式程式設計介面 (API) 是一個軟體使用另一個軟體功能的方式。
閱讀本文後,您將能夠:
相關內容
訂閱 TheNET,這是 Cloudflare 每月對網際網路上最流行見解的總結!
複製文章連結
應用程式開發介面 (API) 是一組規則,允許一個軟體程式將資料傳輸到另一個軟體程式。
API 是一個「介面」,意味著一個事物與另一個事物互動的一種方式。舉一個現實世界中的例子,ATM 有一個介面——一個螢幕和幾個按鈕,允許客戶與他們的銀行互動並請求服務,例如取出現金。同樣,API 是一個軟體與另一個程式互動以獲得所需服務的方式。
想像一下,Jennifer 建立了一個網站,幫助通勤者在上班前檢查高速公路的交通情況。Jennifer 可能會花費大量時間和金錢來建立一個複雜的高速公路追蹤系統,以便向她的網站使用者提供這些資訊。但是這些功能已經存在,因為外部各方已經建立了這樣的系統。Jennifer 的網站沒有重新建立這樣的系統,而是使用由外部高速公路追蹤服務提供的 API。現在 Jennifer 可以專注於構建網站的其他方面。
API 呼叫也稱為 API 要求,是針對 API 的訊息,用於觸發 API 使用。
API 呼叫必須按照 API 的要求進行格式化才能正常運作。API 的要求稱為其「結構描述」。該結構描述還描述了為每個要求提供的回應類型。
假設一個通勤者使用 Jennifer 的網站查看 192 號高速公路的交通情況。該網站傳送一個 API 呼叫來提供此資訊,即一條寫著「192 號高速公路」的訊息。高速公路追蹤服務的 API 伺服器接收到此訊息並回覆 192 號高速公路的行駛時間。想像一下這個 API 的結構描述:
API 要求 | API 回應 |
---|---|
「192 號高速公路」 | 192 號高速公路上的旅行時間 |
「217 號高速公路」 | 217 號高速公路上的旅行時間 |
「225 號高速公路」 | 225 號高速公路上的旅行時間 |
(請注意,這是一個高度簡化的範例——實際上的 API 要求、回應和結構描述更為複雜。)
現在假設 Jennifer 的網站傳送「高速公路 ASDFGHJ」的 API 要求。這不是一個有效的要求,因為它不符合 API 的結構描述,該結構描述只允許高速公路的實際名稱。伺服器將無法為此類要求提供可用的回應。
端點是一個通訊信道的終點。API 端點是 API 回應的發源地。
在範例中,API 連線的用戶端是 Jennifer 的網站,端點是託管 API 的伺服器。Jennifer 的 API 呼叫必須前往 API 伺服器負責的某個 URL(URL 是一個網址,如 www.cloudflare.com/learning)才能獲得回應。
API 整合是兩個或多個使用 API 的應用程式的組合。API 整合使一個應用程式能夠從另一個應用程式的功能中受益,就像將銷售團隊和行銷團隊合併到一個辦公室使這兩個團隊能夠一起工作並從彼此的努力中受益一樣。API 整合也常用於在兩個應用程式或資料庫之間同步資料。
從作業系統到軟體庫,任何涉及電腦代碼的東西都可以有一個 API。Web API 專門供透過網際網路存取的 Web 應用程式使用。
Web API 對於現代網際網路來說非常重要。幾乎所有面向使用者的應用程式都依賴 API 來運作(不僅僅是 Jennifer 的網站!)。整個軟體開發理念都依賴於 API 的使用——其中一種理念是 JAMstack,JAM 代表 JavaScript、API、markup。另一個範例是微服務架構,它使用 API 來呼叫構成應用程式的不同功能。即使沒有使用這些方法構建的應用程式通常也依賴於 API。
SOAP API 和 REST API 是不同類別的 API。
SOAP(簡易物件存取通訊協定)是一種通訊協定。SOAP API 是只使用 SOAP 通訊協定的 API。
REST(具象狀態傳輸)是一種 Web 服務的架構樣式。REST API 是使用 REST 架構構建的任何 API。與 SOAP API 不同,REST API 可以使用任何通訊協定。如今的大多數 API 都是 REST API。
正如允許一個人使用應用程式會帶來該人濫用應用程式的風險一樣,API 也會帶來 API 用戶端濫用服務的風險。此外,Web API 呼叫透過網際網路傳輸,也可能像透過網路傳輸任何其他資料一樣被攔截、偽造或修改。
API 安全性是保護 API 免受攻擊和濫用的做法。鑑於 API 對現代網際網路的重要性,API 安全性是 Web 應用程式安全性的核心組成部分。關鍵的 API 安全措施包括:
Cloudflare API Gateway 包括以上這些和其他安全功能,以防止 API 威脅。要更深入地瞭解 API 安全性,請參閱什麼是 API 安全性?