共用方式為


在 Fabric API for GraphQL 中查詢多個資料來源

Fabric API for GraphQL 的一大優勢是能透過單一統一的 API 端點公開多個資料來源,如湖屋、倉庫和資料庫。 這表示您的應用程式可以在單一 GraphQL 查詢中從不同來源取得資料,免除了分別連接多個 API 或資料庫的需求。

舉例來說,你可能在一個倉庫裡有客戶資料,另一個湖屋裡有庫存資料。 你不必另外呼叫兩個 API,而是可以透過 GraphQL API 同時查詢兩個來源,減少網路負擔並簡化應用程式程式碼。

多來源查詢的運作方式

當你發出跨越多個資料來源的 GraphQL 查詢時,API 會自動平行地將個別請求分散到每個資料來源,然後將結果合併成單一回應。 此方法:

  • 減少往返次數:您的應用程式只需發送一次請求,而非多次連續呼叫
  • 提升效能:平行執行意味著整體反應時間更快
  • 簡化客戶端程式碼:無論資料存放在哪裡,你都能使用單一的 API 介面

這很重要

多來源查詢有以下限制:

  • 你無法在跨越不同資料來源的類型間建立關係。 關係只能在單一資料來源內運作。
  • 每個資料來源的個別請求會平行執行,且沒有保證的順序。
  • 每個對資料來源的請求都是獨立的——沒有跨越多個來源的交易。

查詢範例

商業情境:想像你正在建立一個儀表板,將顧客資訊與產品庫存狀態並列顯示。 您的客戶資料存放在銷售倉庫(ContosoSales),而產品庫存則管理在另一個由供應鏈系統更新的湖庫(ContosoInventory)中。 如果沒有多來源支援,你就得分別呼叫兩個 API,管理兩個不同的連線,然後自己把資料合併到你的應用程式碼裡。

使用 Fabric API for GraphQL,你可以在單一查詢中從兩個來源取得資料:

query {
  customers (first: 1) {
    items {
      FirstName
      LastName
    }
  }
  inventories (first: 1) {
    items {
      Name
    }
  }
}

這個單一請求會從 ContosoSales 資料來源擷取客戶紀錄,並從 ContosoInventory 資料來源擷取庫存項目,並合併成一個回應。 你的儀表板只需一次 API 呼叫就能取得所有所需資料,而不是兩次。

要求的輸出是:

{
  "data": {
    "customers": {
      "items": [
        {
          "FirstName": "Orlando",
          "LastName": "Gee"
        }
      ]
    },
    "inventories": {
      "items": [
        {
          "Name": "AWC Logo Cap"
        }
      ]
    }
  }
}

回應結構與查詢結構相呼應。 在data物件中,您有兩個頂層欄位(customersinventories),對應您所做的兩個查詢。 每個欄位都包含 items 一個陣列,裡面有實際的結果。 customers項目具有像 FirstNameLastName這樣的屬性,而inventories項目的屬性如 Name—— ,完全符合查詢中的需求。

以下是執行此請求時查詢視圖的外觀:

編輯器畫面的螢幕擷取畫面,顯示跨兩個資料來源的查詢。