使用 Azure API 管理來撰寫 API 的優點
微服務架構可能很難管理。 例如,您可能會依賴個別小組以一致的方式實作跨領域需求 (例如安全性)。
在線上商店中,您的開發人員小組在不同的主機 URL 上建立產品詳細資料與訂單詳細資料微服務。 此外,訂單詳細資料服務會使用 XML 來回應。 您想要確保所有回應都是 JSON 格式,讓用戶端應用程式開發人員更容易處理。
在此單元中,您將了解 APIM 的功能。 您可以使用這些功能來整合不同的微服務,並透過單一 URL 上的一致行為,將其呈現給用戶端應用程式。
微服務架構挑戰
以微服務方法進行架構會建立模組化應用程式,其中每個元件都與其他部分鬆散耦合。 獨立部署服務可減少錯誤 (bug) 可能透過測試進入生產環境的任何影響。 這種模組化方法可讓您更輕鬆地復原至穩定版本。 此外,您也可以為每個微服務建立小型自發性的開發人員小組。 這樣的部門很適合現代敏捷式做法。
不過,微服務架構也會帶來挑戰,例如:
- 用戶端應用程式會與微服務耦合。 如果您想要變更微服務的位置或定義,您可能必須重新設定或更新用戶端應用程式。
- 每個微服務可能以不同網域名稱或 IP 位址呈現。 這樣呈現可能讓使用者產生不一致的印象,而且可能對您的品牌造成負面影響。
- 在所有微服務上強制執行一致的 API 規則和標準可能很困難。 例如,一個小組可能會偏好以 XML 回應,另一個則可能偏好使用 JSON。
- 您必須依賴個別小組在其微服務中正確地實作安全性。 集中地強制實施這些要求很困難。
API 管理如何協助?
透過將多個 API、函式與其他服務新增至 API 管理,您可以將那些元件組合成一個整合式產品,向用戶端應用程式呈現單一進入點。 使用 API 管理來撰寫 API 的優點包括:
- 用戶端應用程式與表示商務邏輯的 API 耦合,而不是個別微服務的底層技術實作。 您可以變更服務的位置與定義,而不必重新設定或更新用戶端應用程式。
- API 管理作為媒介。 不論位置為何,都會將要求轉送至正確的微服務,並將回應傳回給使用者。 使用者永遠看不到裝載微服務的不同 URI。
- 您可以使用 API 管理原則,對產品中的所有微服務強制執行一致的規則。 例如,如果您偏好的格式是 JSON,您可以將所有 XML 回應轉換為 JSON。
- 原則也可讓您強制執行一致的安全性需求。
API 管理也包含有用的工具 - 您可以測試每個微服務與其作業,以確保其行為符合您的需求。 您也可以監視已部署服務的行為與效能。
Azure API 管理支援將 Azure 函數應用程式匯入為新的 API,或將它們附加至現有的 API。 此程序會在 Azure 函數應用程式中自動產生主機金鑰,而此金鑰接著會指派給 Azure API 管理中的具名值。
在下一個單元中,您會將訂單詳細資料微服務新增至您在上一個練習中建立的線上商店 API。 如此一來,您將會整合訂單詳細資料與產品詳細資料微服務,並將它們都呈現在整合式 API 的相同網域中。