本文提供 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"
}
]
}