GLOSSARY

什麼是 API?

  此頁面由 DeepL 自動翻譯。 Switch to English

API(應用程式介面)是一套讓不同軟體之間能夠相互溝通的規則。不妨將其視為一份菜單:您的應用程式可以「點餐」以取得資料或執行動作,而 API 則會明確告知「廚房」(即某項服務)該烹調什麼,以及該如何將結果回傳給您。

API 將請求的發送方式與回應的回傳方式標準化,因此即使不同系統是由不同團隊、不同公司所開發,或是使用不同的程式語言所建置,也能可靠地相互協作。

API 實際上做些什麼?

從技術層面來看,API 定義了端點(可呼叫的位址)、可使用的方法(例如使用 GET 擷取資料或使用 POST 傳送資料)、傳送內容的格式(通常為 JSON),以及預期收到的回傳內容(資料加上狀態碼,例如 200 表示「成功」或 404 表示「未找到」)。這種可預測性正是 API 的核心價值所在。

API、SDK 與 UI 之間有何區別?

  • API:規範了您可以提出哪些請求,以及將如何收到回應。
  • SDK(軟體開發套件):一種工具套件,通常會將 API 與現成的程式碼、範例及輔助程式整合在一起,以便更輕鬆地使用該 API。
  • UI(使用者介面):人類點擊和輕觸的對象。API 用於軟體與軟體之間的互動;UI 則是為人而設的。

若要精確來說,雖然可以不使用 SDK 直接使用 API,但使用 SDK 能節省時間並減少錯誤。

API 有不同的「類型」嗎?

是的,有幾種風格,每種都有其優缺點:

  • REST:當今最常見的 Web 架構風格。以資源為基礎,使用 HTTP 方法(GET/POST/PUT/DELETE),通常採用 JSON 格式。
  • GraphQL:客戶端可在單次請求中明確指定所需的具體欄位——這對於減少過度擷取或擷取不足的情況非常有效。
  • SOAP:一種基於 XML 的較舊協議,具有嚴格的合約規範,目前仍被部分企業所採用。
  • gRPC:一種在微服務中廣受歡迎的高效能二進位通訊協定。
  • Webhooks:這並非您發出的請求,而是當發生某件事時(例如送達通知),服務提供者會發送給您的回呼。

使用 API「值得嗎」?

通常來說,是的。與其自己從頭開發所有功能,API 能讓您直接整合支付、地圖、電子郵件、搜尋、分析、人工智慧等服務。這不僅能節省工程開發時間、提升可靠性(服務供應商會持續更新其服務),還能讓您的團隊專注於打造產品的獨特價值。

取捨之處在於:您將繼承服務供應商的呼叫次數限制、定價及正常運作時間等限制條件。若您的產品無法在沒有該 API 的情況下運作,請預先規劃冗餘方案。

使用 API 是否需要特殊的「金鑰」?

經常如此。許多 API 都需要進行身份驗證,以便服務提供者能識別您的身分,並據此授予權限及實施速率限制。常見的做法包括:

  • API 金鑰:您在每次請求中隨附的簡單憑證。
  • OAuth:一種更安全的授權委派方法,非常適合在需要代表使用者取得存取權限時使用。
  • 簽名請求/JWT:經加密簽名的標記,具有有效期限,並可攜帶聲明(您是誰、您被允許執行哪些操作)。

請盡可能避免將金鑰和憑證放入公開儲存庫及客戶端程式碼中。

呼叫 API 需要使用特殊工具嗎?

其實不然。對於許多 API 而言,網頁瀏覽器、curl 或任何 HTTP 客戶端都能勝任。開發人員通常會使用 Postman 之類的工具或程式語言內建的函式庫來發送請求、檢視回應,並儲存範例。至於正式上線的應用程式,則會使用您所用程式語言的 HTTP 函式庫或服務供應商的 SDK。

在現實世界中,有哪些應用會使用 API?

幾乎所有現代技術都離不開它:行動應用程式擷取個人資料、「透過 Google/Apple 登入」、線上商店處理付款、智慧家庭裝置同步資料、儀表板擷取分析數據,甚至連你的天氣小工具也是如此。只要軟體在交換資料,背後很可能就有一個 API 在運作。

您會看到的術語(及其含義)

  • 端點:您呼叫的 URL(例如,/users/123)。
  • 請求/回應:您傳送的內容與您收到的內容。
  • 有效載荷/正文:請求或回應中的資料。
  • 狀態碼:數值結果(200 OK、201 已建立、401 未授權、429 請求過多、500 伺服器錯誤)。
  • 請求限制:在特定時間段內可發送的請求數量。
  • 版本控制:將舊版與新版 API 的行為分開(例如:/v1/ 與 /v2/)。
  • 冪等性:多次執行相同的請求會得到相同的結果(例如 GET)。

相關內容