本文详细介绍 GraphQLApi 项的定义结构。
定义部件
下表列出了 GraphQLApi 定义部件。
| 定义部件路径 |
类型 |
必选 |
DESCRIPTION |
.platform |
PlatformDetails (JSON) |
假 |
描述项的常见详细信息 |
graphql-definition.json |
GraphQLDefinition (JSON) |
是 |
介绍适用于 GraphQL 的 API 的常规和数据源配置 |
GraphQLDefinition
| 名称 |
类型 |
DESCRIPTION |
| $schema |
字符串 |
架构规范的 URL |
| 数据源 |
Source[] |
与用于 GraphQL 的 API 关联的数据源列表 |
来源
| 名称 |
类型 |
DESCRIPTION |
| sourceItemId |
Guid |
源项的 ID |
| sourceWorkspaceId |
Guid |
包含源项的工作区的 ID |
| connectionId |
Guid |
用于源项的连接 ID |
| 来源类型 |
来源类型 |
源项的类型 |
| 对象 |
SourceObject[] |
使用 GraphQL API 公开的源项中的对象列表 |
SourceType (枚举)
| 名称 |
DESCRIPTION |
| SqlAnalyticsEndpoint |
SQL Analytics 终结点 |
| 仓库 |
仓库 |
| SqlDbNative |
SQL数据库 |
| AzureSql |
Azure SQL 数据库 |
SourceObject
| 名称 |
类型 |
DESCRIPTION |
| graphqlType |
字符串 |
要用于源项中的对象的 GraphQL 类型名称 |
| sourceObject |
字符串 |
GraphQL API 公开的源项中的对象名称 |
| 源对象类型 |
SourceObjectType |
源项中的对象类型 |
| 行动 |
<ActionType、ActionValue> |
作类型的字典,用于指示查询和突变及其启用状态的作值 |
| fieldMappings 字段映射 |
<字符串、字符串> |
源对象中的字段字典到 GraphQL 字段 |
| 关系 |
Relationship[] |
从源对象配置的关系列表 |
| IsStoredProcedureQueryNode |
布尔型 |
用于公开存储过程的 GraphQL作类型。 True - 查询,False - 突变。 |
SourceObjectType (枚举)
| 名称 |
DESCRIPTION |
| 表 |
数据库表 |
| 查看 |
数据库视图 |
| StoredProcedure |
数据库存储过程 |
ActionType (枚举)
| 名称 |
DESCRIPTION |
| 查询 |
对源对象进行查询 |
| Query_by_pk |
按源对象的主键进行查询 |
| 创建 |
在源对象上创建突变 |
| 更新 |
更新源对象的突变 |
| 删除 |
删除源对象上的突变 |
| 执行 |
对存储过程执行查询或突变 |
ActionValue (枚举)
| 名称 |
DESCRIPTION |
| 已启用 |
启用查询或突变 |
| 禁用 |
禁用查询或突变 |
关系
| 名称 |
类型 |
DESCRIPTION |
| 字段 |
字符串 |
用于 GraphQL 类型的关系的 GraphQL 字段名称 |
| 基数 |
RelationshipCardinality |
关系的基数 |
| targetObject |
字符串 |
关系的目标对象 |
| sourceFields |
字符串数组[] |
用于关系的源对象中的字段列表 |
| targetFields |
字符串数组[] |
用于关系的目标对象中的字段列表 |
| linkingObject |
字符串 |
源对象与目标对象之间的多对多关系链接对象 |
| linkingSourceFields |
字符串数组[] |
源对象中关系的链接对象中的字段列表 |
| linkingTargetFields |
字符串数组[] |
指向目标对象的链接对象中的字段列表 |
RelationshipCardinality (枚举)
| 名称 |
DESCRIPTION |
| 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"
}
]
}