共用方式為


用於 GraphQL 定義的 API

本文提供 GraphQLApi 專案定義結構的細目。

定義元件

下表列出 GraphQLApi 定義元件。

定義元件路徑 類型 為必填項目 說明
.platform PlatformDetails (JSON) 假的 描述項目的常見詳細數據
graphql-definition.json GraphQLDefinition (JSON) 描述適用於 GraphQL 之 API 的一般和數據源組態

GraphQLDefinition

名稱 類型 說明
$schema 繩子 架構規格的URL
數據源 Source[] 與 GraphQL API 相關聯的數據源清單

來源

名稱 類型 說明
sourceItemId Guid 來源項目的標識碼
sourceWorkspaceId Guid 包含來源專案的工作區標識碼
connectionId Guid 用於來源項目的連線標識碼
資源類型 來源類型 來源項目的類型
物件 SourceObject[] 使用 GraphQL API 公開之來源專案中的物件清單

SourceType (列舉)

名稱 說明
SqlAnalyticsEndpoint SQL 分析端點
倉儲 倉儲
SqlDbNative SQL資料庫
AzureSql Azure SQL 資料庫

SourceObject

名稱 類型 說明
graphqlType 繩子 要用於來源項目中物件的 GraphQL 類型名稱
sourceObject 繩子 GraphQL API 所公開之來源專案中的物件名稱
來源物件類型 SourceObjectType 來源專案中的物件類型
行為 <ActionType、ActionValue> 動作類型的字典到動作值,指出查詢和突變及其啟用狀態
fieldMappings 欄位映射 <字串、字串> 來源物件中欄位的字典至 GraphQL 欄位
關聯性 Relationship[] 從來源物件設定的關聯性清單
IsStoredProcedureQueryNode 布爾邏輯 用於公開預存程式的 GraphQL 作業類型。 True - 查詢,False - 突變。

SourceObjectType (列舉)

名稱 說明
資料庫資料表
查看 資料庫檢視
儲存程序 資料庫預存程式

ActionType (列舉)

名稱 說明
查詢 來源對象的查詢
Query_by_pk 在來源物件上依主鍵查詢
創造 在來源物件上建立突變
更新 更新來源物件上的突變
刪除 刪除來源物件上的突變
執行 在預存程式上執行查詢或突變

ActionValue (列舉)

名稱 說明
已啟用 啟用查詢或突變
已停用 停用查詢或突變

關係

名稱 類型 說明
领域 繩子 GraphQL 功能變數名稱,用於 GraphQL 類型的關聯性
基數 RelationshipCardinality 關聯性的基數
targetObject 繩子 關聯性的目標物件
sourceFields 字串陣列 (String[]) 用於關聯性之來源物件中的欄位清單
targetFields 字串陣列 (String[]) 用於關聯性之目標物件中的欄位清單
linkingObject 繩子 連結來源對象與目標對象之間的多對多關聯性
linkingSourceFields 字串陣列 (String[]) 來源物件中關聯性的連結物件欄位清單
linkingTargetFields 字串陣列 (String[]) 關聯性與目標物件之連結物件中的欄位清單

RelationshipCardinality (列舉)

名稱 說明
ManyToOne 多對一關聯性
OneToMany 一對多關聯性
OneToOne 一對一關聯性
ManyToMany 多對多關聯性

GraphQLDefinition 範例

{
  "$schema": "https://developer.microsoft.com/json-schemas/fabric/item/graphqlApi/definition/1.0.0/schema.json",
  "datasources": [
    {
      "objects": [
        {
          "actions": {
            "Query": "Enabled"
          },
          "fieldMappings": {
            "LastName": "LastName",
            "Name": "Name"
          },
          "graphqlType": "Customers",
          "relationships": [],
          "sourceObject": "model.Customers",
          "sourceObjectType": "View"
        }
      ],
      "sourceItemId": "c54cd4ce-cbaa-4fc5-bcc8-121f2a3e0c4c",
      "sourceType": "Warehouse",
      "sourceWorkspaceId": "c2231263-b81e-4dd2-a69b-41eca8c93584"
    },
    {
      "connectionId": "daa5dc10-6eae-4b19-af5f-da8db84c51c1",
      "objects": [
        {
          "actions": {
            "Query": "Enabled"
          },
          "fieldMappings": {
            "id": "id",
            "publisher_id": "publisher_id",
            "title": "title"
          },
          "graphqlType": "publishers",
          "relationships": [],
          "sourceObject": "dbo.publishers_view",
          "sourceObjectType": "View"
        },
        {
          "actions": {
            "Query": "Enabled",
            "Query_by_pk": "Enabled",
            "Create": "Enabled",
            "Update": "Enabled",
            "Delete": "Disabled"
          },
          "fieldMappings": {
            "id": "id",
            "title": "title"
          },
          "graphqlType": "books",
          "relationships": [],
          "sourceObject": "dbo.books",
          "sourceObjectType": "Table"
        }
      ],
      "sourceItemId": "daa5dc10-6eae-4b19-af5f-da8db84c51c1",
      "sourceType": "AzureSql",
      "sourceWorkspaceId": "00000000-0000-0000-0000-000000000000"
    }
  ]
}