API 開發:建構可擴充的 Web 服務

在這個互連互通的數位世界中,應用程式很少獨立運作,它們需要以安全且標準化的方式與彼此通訊、共用資料及公開功能。在這種情況下,API 開發就能派上用場。

API 開發的定義

API 開發是指建立、發布及管理應用程式設計介面的完整過程。

這是一門牽涉極廣的綜合學科,範圍遠超出編寫後端程式碼。過程涵蓋 API 的整個生命週期:從策略規劃和謹慎設計開始,接著再實作和嚴格測試,最後再到安全部署、持續維護和版本管理。

什麼是 API?

API (應用程式設計介面) 是一組規則和定義,能讓不同軟體應用程式相互通訊及要求服務。有了 API 這個中間橋梁,應用程式之間便可共用資料和功能,不必瞭解其他系統複雜的內部運作方式。API 定義了使用者應如何提出要求,以及預期會收到什麼樣的回應。

API 開發的重要性

設計完善的 API 常被視為現代數位服務的構成要素,為創新和靈活性提供基礎。

  • 實現連結與整合:API 就像是串聯樞紐,讓不同的系統、服務和應用程式能順利共用資料和功能
  • 支援現代架構:API 開發是微服務架構的基礎,在這種架構中,應用程式會拆分成較小的獨立服務,並透過 API 相互通訊
  • 促進創新與合作:企業可透過公開 API 公開功能,讓第三方開發人員在自家平台上建構新的應用程式和服務,進而形成蓬勃發展的生態系統
  • 開拓新的業務管道:API 本身可做為產品,將有價值的資料或服務提供給其他企業,藉此創造新的收益來源

API 開發的重點概念

如要有效建構及使用 API,必須先瞭解幾個基本概念。

API 端點是用戶端應用程式用來存取 API 的特定網址。每個端點都與應用程式中的特定功能或資源相關聯。

舉例來說,在使用者管理 API 中,可能會有以下這類端點:https://api.example.com/users (用來取得使用者清單),以及 https://api.example.com/users/123 (用來取得特定使用者的資料)。

API (尤其是符合 REST 樣式的 API) 會使用標準 HTTP 動詞來表示要對資源執行的動作。最常見的方法包括:

GET:從指定資源擷取資料。

POST:將新資料提交至資源。

PUT:使用新資料更新現有資源。

DELETE:移除指定資源。

這是兩個重要的安全概念

  • 驗證是確認使用者或用戶端身分的程序,通常會使用 API 金鑰或 OAuth 權杖
  • 授權是判斷通過驗證的使用者可執行哪些操作的程序,確保他們只能在授權範圍內存取資料及執行相關動作

如要確保 API 順利運作並發揮價值,清楚而完整的互動式說明文件必不可少。這份文件就像是使用手冊,向其他使用者說明 API 的功能、端點使用方式、所需的資料格式及要求驗證方式。

API 架構樣式

API 的設計方式有很多種,但業界最著名的架構樣式有三種。至於該選擇哪一種,主要取決於應用程式的具體需求,如彈性、效能或嚴格安全標準等方面的需求。

架構類型

主要優點

常見用途

符合 REST 樣式的 API

  • 簡單、可擴充:採用標準 HTTP 方法及無狀態設計,因此容易理解、實作及水平擴充
  • 靈活有彈性:支援多種資料格式,以 JSON 最為常見,這種輕量格式能為網頁用戶端簡化剖析作業
  • 廣泛採用:這是最普遍的網路 API 形式,擁有龐大的工具生態系統和開發人員知識庫
  • 對外公開的網路 API
  • 行動應用程式後端
  • 內部微服務通訊

SOAP API


  • 安全性高:內建 WS-Security 等標準,符合許多企業和政府環境的要求
  • 標準化且可靠:以正式通訊協定形式運作,並採用嚴格合約 (WSDL),能確保可靠性並交易支援 (符合 ACID 標準)
  • 沒有語言限制:採用嚴謹的 XML 格式,標準化程度極高且適用於各種平台
  • 需維持絕佳安全性和交易完整性的企業應用程式
  • 金融與付款閘道整合
  • 舊版系統整合

GraphQL

  • 資料效率高:客戶可以只要求所需的資料,避免發生 REST API 常見的過度擷取問題
  • 減少網路呼叫次數:用戶端可透過單一要求,擷取多個資源中的資料,這對網路頻寬有限的行動應用程式特別有利
  • 採用強型結構定義:API 以強型系統為建構基礎,提供強大的開發人員工具,並自動附帶 API 說明文件
  • 注重資料用量和網路效率的行動應用程式
  • 資料模型複雜且資源互有關聯的應用程式
  • 匯總多個微服務資料的前端

架構類型

主要優點

常見用途

符合 REST 樣式的 API

  • 簡單、可擴充:採用標準 HTTP 方法及無狀態設計,因此容易理解、實作及水平擴充
  • 靈活有彈性:支援多種資料格式,以 JSON 最為常見,這種輕量格式能為網頁用戶端簡化剖析作業
  • 廣泛採用:這是最普遍的網路 API 形式,擁有龐大的工具生態系統和開發人員知識庫
  • 對外公開的網路 API
  • 行動應用程式後端
  • 內部微服務通訊

SOAP API


  • 安全性高:內建 WS-Security 等標準,符合許多企業和政府環境的要求
  • 標準化且可靠:以正式通訊協定形式運作,並採用嚴格合約 (WSDL),能確保可靠性並交易支援 (符合 ACID 標準)
  • 沒有語言限制:採用嚴謹的 XML 格式,標準化程度極高且適用於各種平台
  • 需維持絕佳安全性和交易完整性的企業應用程式
  • 金融與付款閘道整合
  • 舊版系統整合

GraphQL

  • 資料效率高:客戶可以只要求所需的資料,避免發生 REST API 常見的過度擷取問題
  • 減少網路呼叫次數:用戶端可透過單一要求,擷取多個資源中的資料,這對網路頻寬有限的行動應用程式特別有利
  • 採用強型結構定義:API 以強型系統為建構基礎,提供強大的開發人員工具,並自動附帶 API 說明文件
  • 注重資料用量和網路效率的行動應用程式
  • 資料模型複雜且資源互有關聯的應用程式
  • 匯總多個微服務資料的前端

API 開發生命週期

建構正式環境等級的 API 須完成幾個明確的階段,這是一個有系統的流程。

1. 規劃與設計

在這個初始階段,主要須定義 API 的目標、瞭解目標對象,並設計 API 合約。這種「優先設計」的做法通常會使用 OpenAPI 規格等規格語言,先建立端點、資料模型和驗證方法的藍圖,再編寫程式碼。

2. 開發與實作

在這個階段,使用者會編寫後端程式碼,實作設計階段定義的邏輯。他們會選擇程式設計語言和框架 (例如 Python 和 Flask,或 Node.js 和 Express),並建構可處理傳入 API 要求的函式。

3. 測試

嚴謹的測試是確保 API 可靠、安全、高效的關鍵,包括單元測試 (檢查個別功能)、整合測試 (確保系統不同部分能協同運作),以及負載測試 (觀察 API 在高流量下的行為表現)。

4. 部署作業

API 建構及測試完畢後,會部署至託管環境,供用戶端應用程式存取。這個環境可以是傳統伺服器、虛擬機器,以及雲端中的現代無伺服器平台。

5. 監控與維護

部署後,須持續監控 API,確認是否有錯誤並觀察延遲情況和使用模式。團隊可透過這個觀測機制,主動找出並排解問題,同時瞭解 API 的使用情形。

6. 版本管理

隨著業務需求演變,API 也必須隨之調整。明確的版本管理策略 (像是在網址中加入版本號碼,如 /v2/users) 至關重要,可讓使用者導入變更或新功能,同時不影響需使用舊版 API 的現有應用程式。

API 開發最佳做法

  • 採用優先設計的做法:先使用 OpenAPI 等規格設計 API,再編寫程式碼
  • 採用一致的命名慣例:確保端點路徑和資料欄位易於理解與預測
  • 提供清楚詳盡的說明文件:讓其他使用者能夠輕鬆瞭解及使用 API
  • 實施完善的安全防護措施:強制執行驗證和授權,保護資料和服務
  • 從一開始就做好版本管理規劃:決定如何處理變更,避免日後影響用戶端應用程式的運作
  • 提供有意義的錯誤訊息:發生錯誤時,傳回清楚的錯誤訊息和適當的 HTTP 狀態碼,協助使用者排解問題

透過 Google Cloud 解決業務難題

新客戶可以獲得價值 $300 美元的免費抵免額,盡情試用各項 Google Cloud 功能。

開始開發 API

就新手而言,建構第一個 API 其實很容易上手。將流程拆解成幾個重點步驟,有助於掌握整體開發過程。

選擇語言和框架

選擇熟悉的程式設計語言和網路框架。常見選擇包括 Python 搭配 Flask 或 FastAPI 等框架,或 Node.js 搭配 Express,這些組合擁有完善的支援及龐大的社群。

設定開發環境

在本機電腦上安裝必要的工具,通常包括語言執行階段 (如 Python)、程式碼編輯器 (如 VS Code) 和版本管控系統 Git。

編寫第一個 API 端點

從簡單的「Hello World」端點開始著手。您必須建立一個路由,以便回應 GET 要求並傳回簡單的 JSON 訊息。這有助於確認基本設定、框架和伺服器的運作都正常,這樣您才能進一步開發更複雜的邏輯。

API 開發的好處

擴充性

雲端平台可根據流量自動增減 API 的運算資源,確保效能穩定,同時避免過度佈建。

代管服務

雲端供應商會處理底層基礎架構、伺服器維護和安全性修補作業,讓企業團隊將重心放在 API 的邏輯上。

服務範圍遍及全球

您可以輕鬆將 API 部署至世界各地的資料中心,為全球使用者縮短延遲時間。

整合工具

雲端平台提供豐富的整合式服務生態系統,包括資料庫、監控、記錄和 CI/CD 等,可簡化整個開發生命週期。

您希望解決什麼問題?
What you'll get:
逐步指南
參考架構
可用的預先建構解決方案
這項服務以 Vertex AI 建構,必須年滿 18 歲才能使用。請勿輸入個人資訊,或是敏感、機密的內容。

其他資源