用于 GraphQL 定义的 API

本文详细介绍 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"
    }
  ]
}