Compartir a través de


API para la definición de GraphQL

En este artículo se proporciona un desglose de la estructura de definición de los elementos de GraphQLApi.

Elementos de definición

En esta tabla se enumeran los elementos de definición de GraphQLApi.

Ruta de acceso del elemento de definición tipo Obligatorio Descripción
.platform PlatformDetails (JSON) falso Describe los detalles comunes del elemento.
graphql-definition.json GraphQLDefinition (JSON) cierto Describe la configuración general y del origen de datos de la API para GraphQL.

GraphQLDefinition

Nombre Tipo Descripción
$schema Cuerda Dirección URL para la especificación del esquema
orígenes de datos Origen[] Lista de orígenes de datos asociados a API para GraphQL

Fuente

Nombre Tipo Descripción
sourceItemId GUID Identificador del elemento de origen
sourceWorkspaceId GUID Identificador del área de trabajo que contiene el elemento de origen
connectionId GUID Identificador de la conexión usada para el elemento de origen
tipo de fuente TipoDeFuente Tipo de elemento de origen
Objetos SourceObject[] Lista de objetos del elemento de origen que se exponen mediante GraphQL API

SourceType (enumeración)

Nombre Descripción
SqlAnalyticsEndpoint Punto de conexión de SQL Analytics
Almacén Almacén
SqlDbNative Base de datos SQL
AzureSql Azure SQL Database

SourceObject

Nombre Tipo Descripción
graphqlType Cuerda Nombre de tipo graphQL que se va a usar para el objeto en el elemento de origen
sourceObject Cuerda Nombre de objeto en el elemento de origen expuesto por GraphQL API
sourceObjectType SourceObjectType Tipo de objeto en el elemento de origen
Acciones <ActionType, ActionValue> Diccionario de tipo de acción al valor de acción que indica consultas y mutaciones con su estado de habilitación
fieldMappings <String, String> Diccionario de campos del objeto de origen a campos GraphQL
Relaciones Relación[] Lista de relaciones configuradas desde el objeto de origen
IsStoredProcedureQueryNode Booleano Tipo de operación GraphQL para exponer el procedimiento almacenado. True - Query, False - Mutación.

SourceObjectType (enumeración)

Nombre Descripción
Tabla Tabla de base de datos
Vista Vista de base de datos
StoredProcedure Procedimiento almacenado de base de datos

ActionType (enumeración)

Nombre Descripción
Consulta Consulta en el objeto de origen
Query_by_pk Consulta por clave principal en el objeto de origen
Crear Creación de una mutación en el objeto de origen
Actualizar Actualización de la mutación en el objeto de origen
Borrar Eliminación de la mutación en el objeto de origen
Ejecutar Ejecutar consulta o mutación en el procedimiento almacenado

ActionValue (enumeración)

Nombre Descripción
Activado Habilitación de la consulta o mutación
Deshabilitado Deshabilitar la consulta o la mutación

Relación

Nombre Tipo Descripción
campo Cuerda Nombre del campo GraphQL que se va a usar para la relación en el tipo GraphQL
cardinalidad RelationshipCardinality Cardinalidad de la relación
targetObject Cuerda Objeto de destino para la relación
sourceFields String[] Lista de campos del objeto de origen usado para la relación
targetFields String[] Lista de campos del objeto de destino usado para la relación
linkingObject Cuerda Vincular objeto para relaciones de varios a varios entre objetos de origen y de destino
linkingSourceFields String[] Lista de campos del objeto de vinculación para la relación del objeto de origen
linkingTargetFields String[] Lista de campos del objeto de vinculación para la relación con el objeto de destino

RelationshipCardinality (enumeración)

Nombre Descripción
ManyToOne Relación de varios a uno
OneToMany Relación uno a varios
OneToOne Relación uno a uno
ManyToMany Relación de varios a varios

Ejemplo de 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"
    }
  ]
}