

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# API 合成模式
<a name="api-composition"></a>

此模式使用 API 編譯器或彙總器，透過叫用擁有資料的個別微服務來實作查詢。然後，它會透過執行記憶體內聯結來合併結果。

下圖說明此模式的實作方式。

![\[API 合成模式圖\]](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/modernization-data-persistence/images/enabling-diagram2.png)


該圖顯示以下工作流程：

1. API 閘道提供「/客戶」 API，其具有可追蹤 Aurora 資料庫中客戶訂單的「訂單」微服務。

1. 「支援」微服務會追蹤客戶支援問題，並將其存放在 Amazon OpenSearch Service 資料庫中。

1. 「CustomerDetails」微服務會在 DynamoDB 資料表中維護客戶屬性 （例如地址、電話號碼或付款詳細資訊）。

1. 「GetCustomer」Lambda 函數會執行這些微服務的 APIs，並在將資料傳回請求者之前，對資料執行記憶體內聯結。這有助於在使用者面向的 API 的一次網路呼叫中輕鬆擷取客戶資訊，並保持非常簡單的界面。

API 合成模式提供從多個微服務收集資料的最簡單方法。不過，使用 API 合成模式有以下缺點：
+ 它可能不適合需要記憶體內聯結的複雜查詢和大型資料集。
+ 如果您增加連線至 API 編寫器的微服務數量，您的整體系統會變得較不可用。
+ 增加的資料庫請求會建立更多的網路流量，進而增加您的營運成本。