Поделиться через


Определение API для GraphQL

В этой статье представлена разбивка структуры определения для элементов GraphQLApi.

Части определения

В этой таблице перечислены части определения GraphQLApi.

Путь к части определения тип Обязательно Описание
.platform PlatformDetails (JSON) неправда Описание общих сведений об элементе
graphql-definition.json GraphQLDefinition (JSON) правда Описание общей конфигурации и конфигурации источника данных API для GraphQL

GraphQLDefinition

Имя Тип Описание
$schema Струна URL-адрес спецификации схемы
источники данных Source[] Список источников данных, связанных с API для GraphQL

Исходный материал

Имя Тип Описание
sourceItemId Гид Идентификатор исходного элемента
sourceWorkspaceId Гид Идентификатор рабочей области, содержащей исходный элемент
connectionId Гид Идентификатор подключения, используемого для исходного элемента
тип источника Тип источника Тип исходного элемента
Объектов SourceObject[] Список объектов в исходном элементе, который предоставляется с помощью API GraphQL

SourceType (перечисление)

Имя Описание
SqlAnalyticsEndpoint Конечная точка аналитики SQL
Склад Склад
SqlDbNative База данных SQL
AzureSql База данных SQL Azure

SourceObject

Имя Тип Описание
graphqlType Струна Имя типа GraphQL, используемое для объекта в исходном элементе
sourceObject Струна Имя объекта в исходном элементе, предоставляемом API GraphQL
тип исходного объекта SourceObjectType Тип объекта в исходном элементе
Действия <ActionType, ActionValue> Словарь типа действия для значения действия, указывающего запросы и изменения с их состоянием включения
fieldMappings <Строка, строка> Словарь полей в исходном объекте в поля GraphQL
Отношения Связь[] Список связей, настроенных из исходного объекта
IsStoredProcedureQueryNode Булев Тип операции GraphQL для предоставления хранимой процедуры. True — запрос, false — мутация.

SourceObjectType (перечисление)

Имя Описание
Таблица Таблица базы данных
Просмотреть Представление базы данных
хранимая процедура Хранимая процедура базы данных

ActionType (перечисление)

Имя Описание
Запрос Запрос к исходному объекту
Query_by_pk Запрос по первичному ключу в исходном объекте
Создайте Создание мутации в исходном объекте
Обновление Обновление мутации в исходном объекте
Удалить Удаление мутации в исходном объекте
Выполнить Выполнение запроса или изменения в хранимой процедуре

ActionValue (перечисление)

Имя Описание
Включен Включение запроса или изменения
Нетрудоспособный Отключение запроса или изменения

Отношения

Имя Тип Описание
поле Струна Имя поля GraphQL, используемое для связи в типе GraphQL
мощность СвязьCardinality Кратность для связи
targetObject Струна Целевой объект для связи
sourceFields String[] Список полей в исходном объекте, используемом для связи
targetFields String[] Список полей в целевом объекте, используемом для связи
связываниеObject Струна Связывание объекта для связей "многие ко многим" между исходными и целевыми объектами
связываниеSourceFields String[] Список полей в объекте связывания для связи из исходного объекта
связываниеTargetFields String[] Список полей в объекте связывания для связи с целевым объектом

RelationshipCardinality (перечисление)

Имя Описание
ManyToOne Связь "многие ко одному"
OneToMany Связь "Один ко многим"
OneToOne Связь "один к одному"
МногиеToMany Связь "многие ко многим"

Пример 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"
    }
  ]
}