在網狀架構中建立 GraphQL 的 API 並新增資料
藉由建立 API 開始使用適用於 GraphQL 的網狀架構 API,然後連結資料來源以公開您透過 API 選擇的資料。 網狀架構會根據您的資料自動建置 GraphQL 架構,而應用程式已準備好在幾分鐘內連線。
必要條件
- 啟用 [用戶可以建立網狀架構專案] 租使用者管理員設定。
建立 GraphQL 的 API
建立適用於 GraphQL 的 API:
從 [網狀架構入口網站] 首頁,從工作負載清單中選取 [資料工程師]。
選取 GraphQL 的 API(預覽版)。
或者,從資料工程中的任何工作區選取 GraphQL 的新>API(預覽)。
輸入作業的名稱,然後選取建立。
您現在有功能完整的 API,可在 Fabric 中存取您的資料。
線上至資料來源並建置架構
此時,API 已就緒,但不會公開任何資料。 GraphQL 的 API 定義於以強型別系統中的類型和欄位來組織的架構中。 網狀架構會根據您選擇要公開給 GraphQL 用戶端的資料,自動產生必要的 GraphQL 架構。
在新的 API 中,選擇選取資料來源 來選擇要公開 的資料來源。
接下來,選取 API 的連線選項:
您可以在這裏定義 API 用戶端如何存取 API,以根據兩個不同的選項執行 GraphQL 要求:
- 單一登錄 (SSO):使用用戶端認證連線到數據源,這表示已驗證的 API 使用者必須能夠存取基礎數據源。 例如,如果您要向 API 用戶端公開 Lakehouse 數據,則已驗證的使用者必須同時存取 API 和 Lakehouse。 更具體地說 ,在新增直接訪問許可權時,執行 GraphQL API 的許可權(新增直接存取權限時執行查詢和突變 選項)以及據以選擇之數據源中所需的讀取或寫入許可權。 或者,您也可以將使用者新增為具有 API 和數據源專案所在參與者角色的工作區成員,這樣就能從單一位置存取這兩個專案。 如需詳細資訊,請參閱讓使用者存取工作區。
- 已儲存的認證:使用已儲存的認證連線到數據源,這表示已驗證的 API 使用者不需要直接存取數據源。 已儲存的認證會共用,以存取數據源中 API 與基礎表之間的數據。 例如,如果您要向 API 用戶端公開 Lakehouse 數據,驗證的使用者只需要直接存取 API(新增直接存取權限時執行查詢和突變 選項),而不是 Lakehouse。 已儲存的認證可用來將 API 連線至數據源,並由所有已驗證的 API 用戶共用。 如果您要透過 GraphQL 公開 Azure 數據源,例如 Azure SQL 資料庫,則需要此選項。 選取 [確定] 之後,如果尚未就地儲存認證,系統會提示您在下一個步驟中選擇數據源之後,建立新的已儲存認證。
選取這些選項之後,所有數據源都會強制執行這些選項,然後新增至 API。 您無法在相同的 API 中混合單一登入和儲存的認證。 此外,雖然您可以使用用戶主體名稱(UPN)或服務主體名稱(SPN)來聯機到您的 API,但服務主體目前僅支援單一登錄(SSO)。 用戶主體可以根據您的安全性需求,運用 SSO 或已儲存的認證。
注意
GraphQL 的 API 需要用戶端應用程式使用 Microsoft Entra 進行驗證。 您必須註冊並設定用戶端應用程式,才能對 Fabric 執行 API 呼叫。 Microsoft Entra 中註冊的應用程式需要 Power BI 服務 的 Item.Execute.All API 許可權。 您可以在 Connect Applications 找到端對端教學課程,其中包含用戶主體和服務主體的指示和範例程序代碼。
OneLake 資料中樞隨即出現;選擇您要連線的資料來源。 針對下列範例,我們選擇連結至鏡像資料庫的 AdventureWorks SQL 分析端點。 選取 篩選只查看特定類型的 Fabric 資料來源,或依特定關鍵詞搜尋。 當您準備好時,選取設定。
取得資料 畫面隨即出現,您可以在其中選擇要在 GraphQL 架構中公開的物件。
選取您要在 API 中公開的個別資料表或預存程式旁的複選框。 若要選取資料夾中的所有物件,請選取頂端具有資料來源名稱的複選框。
選取載入以啟動 GraphQL 架構產生程式。
架構已產生,您可以開始建立 GraphQL 查詢(讀取、清單)或突變(建立、更新、刪除)原型,以與您的資料互動。
您的 GraphQL API 現在已準備好接受連線和要求。 您可以使用 API 編輯器來測試和建立 GraphQL 查詢原型,以及架構總管來驗證 API 中公開的資料類型和欄位。
權限摘要
下表摘要說明存取 GraphQL API 的用戶端所支援的不同排列和最低必要許可權:
API 呼叫端 | 資料來源連線能力 | 必要的 GraphQL API 許可權 | 必要的數據源許可權 | Entra 應用程式範圍 |
---|---|---|---|---|
使用者主體 (UPN) | 單一登入 (SSO) | 在 API 層級執行查詢和突變 | 在數據源上授與UPN的適當讀取/寫入許可權 | Item.Execute.All |
服務主體 (SPN) | 單一登入 (SSO) | 在 API 層級執行查詢和突變 | 在數據源上授與SPN的適當讀取/寫入許可權 | Item.Execute.All |
使用者主體 (UPN) | 已儲存的認證 | 在 API 層級執行查詢和突變 | 在數據源上授與已儲存認證的適當讀取/寫入許可權 | Item.Execute.All |
服務主體 (SPN) | 已儲存的認證 | 目前不支援 | 目前不支援 | 目前不支援 |