API(應用程式介面)是一套讓不同軟體之間能夠相互溝通的規則。不妨將其視為一份菜單:您的應用程式可以「點餐」以取得資料或執行動作,而 API 則會明確告知「廚房」(即某項服務)該烹調什麼,以及該如何將結果回傳給您。
API 將請求的發送方式與回應的回傳方式標準化,因此即使不同系統是由不同團隊、不同公司所開發,或是使用不同的程式語言所建置,也能可靠地相互協作。
從技術層面來看,API 定義了端點(可呼叫的位址)、可使用的方法(例如使用 GET 擷取資料或使用 POST 傳送資料)、傳送內容的格式(通常為 JSON),以及預期收到的回傳內容(資料加上狀態碼,例如 200 表示「成功」或 404 表示「未找到」)。這種可預測性正是 API 的核心價值所在。
若要精確來說,雖然可以不使用 SDK 直接使用 API,但使用 SDK 能節省時間並減少錯誤。
是的,有幾種風格,每種都有其優缺點:
通常來說,是的。與其自己從頭開發所有功能,API 能讓您直接整合支付、地圖、電子郵件、搜尋、分析、人工智慧等服務。這不僅能節省工程開發時間、提升可靠性(服務供應商會持續更新其服務),還能讓您的團隊專注於打造產品的獨特價值。
取捨之處在於:您將繼承服務供應商的呼叫次數限制、定價及正常運作時間等限制條件。若您的產品無法在沒有該 API 的情況下運作,請預先規劃冗餘方案。
經常如此。許多 API 都需要進行身份驗證,以便服務提供者能識別您的身分,並據此授予權限及實施速率限制。常見的做法包括:
請盡可能避免將金鑰和憑證放入公開儲存庫及客戶端程式碼中。
其實不然。對於許多 API 而言,網頁瀏覽器、curl 或任何 HTTP 客戶端都能勝任。開發人員通常會使用 Postman 之類的工具或程式語言內建的函式庫來發送請求、檢視回應,並儲存範例。至於正式上線的應用程式,則會使用您所用程式語言的 HTTP 函式庫或服務供應商的 SDK。
幾乎所有現代技術都離不開它:行動應用程式擷取個人資料、「透過 Google/Apple 登入」、線上商店處理付款、智慧家庭裝置同步資料、儀表板擷取分析數據,甚至連你的天氣小工具也是如此。只要軟體在交換資料,背後很可能就有一個 API 在運作。