Compartilhar via


API do Fabric para o editor GraphQL

A API do Fabric para GraphQL fornece um ambiente gráfico de desenvolvimento GraphQL no navegador, que permite que um playground interativo componha, teste e veja os resultados ao vivo de suas consultas e mutações do GraphQL.

Quem usa o editor do GraphQL

O editor do GraphQL é essencial para:

  • Desenvolvedores de aplicativos prototipando e testando consultas em dados do Fabric antes de implementá-las em aplicativos
  • Engenheiros de dados explorando estruturas de dados warehouse e lakehouse e validando designs de esquema GraphQL
  • Colaboradores do workspace do Fabric testando permissões de acesso a dados e solucionando problemas de consulta
  • Desenvolvedores de BI aprendendo a estrutura de API e criando padrões de acesso a dados para aplicativos personalizados
  • Equipes de desenvolvimento colaborando no desenvolvimento de consultas e na solução de problemas de acesso a dados em workspaces do Fabric

Use o editor sempre que precisar desenvolver, testar ou depurar interativamente consultas GraphQL em suas fontes de dados do Fabric.

Introdução ao editor do GraphQL

Siga estas etapas para começar a usar o editor do GraphQL:

  1. Abra o item API para GraphQL – Navegue até seu workspace no Fabric e abra o item da API para GraphQL.

  2. Acessar o editor – Selecione Consulta no canto inferior esquerdo da tela do portal.

    Captura de tela mostrando onde a opção Consulta aparece no canto inferior esquerdo da tela do Fabric.

  3. Escreva sua consulta – Digite suas consultas GraphQL diretamente na guia Consulta . Use o Intellisense com atalhos de teclado:

    • Windows: CTRL + Espaço
    • macOS: Comando + Espaço

    Captura de tela da tela do editor de API, que mostra uma guia Consulta dividida em painéis Executar, Variáveis da consulta e Resultados.

  4. Execute a consulta – Selecione Executar para executar a consulta e recuperar dados da fonte de dados.

Gerar código

O editor de API gera automaticamente o código padrão em Python ou Node.js que reflete a consulta ou mutação do GraphQL que você está testando no editor. À medida que você protótipo e refina suas consultas, o código gerado é atualizado adequadamente. Quando estiver satisfeito com os resultados, você poderá exibir e copiar o código gerado para ser executado localmente para fins de teste ou reutilizá-lo em seu processo de desenvolvimento de aplicativos.

Importante

O código gerado usa credenciais interativas do navegador e deve ser usado apenas para fins de teste. Na produção, sempre registre um aplicativo no Microsoft Entra e use os client_id e escopos apropriados. Você pode encontrar um exemplo de ponta a ponta com código de exemplo em Conectar Aplicativos.

Para começar:

  1. Escrever uma consulta – Insira a seguinte consulta de exemplo (ou sua) no editor de Consultas:

    query {
      addresses(first: 5) {
         items {
            AddressID
            City
            StateProvince
            CountryRegion
         }  
      }
    }
    
  2. Execute a consulta – Selecione Executar para executar a consulta e verificar se ela funciona corretamente no editor antes de prosseguir.

  3. Gerar código – selecione o botão Gerar código e selecione sua linguagem de programação preferencial (Python ou JavaScript/Node.JS):

    Captura de tela da tela do editor de API mostrando a lista suspensa para selecionar a linguagem de programação para o código gerado.

  4. Em seguida, você pode copiar o código gerado e salvá-lo como um arquivo em uma pasta local. Dependendo do idioma escolhido, siga estas etapas rápidas para testar localmente:

Python

  1. Crie um arquivo nomeado editor.py e cole o código gerado na consulta de exemplo acima.

  2. Crie um ambiente virtual executando o comando python -m venv .venv.

  3. Ative o venv executando .venv\Scripts\activate ou source .venv/bin/activate.

  4. Instale a dependência necessária executando pip install azure-identity.

  5. Execute o código com python editor.py.

  6. Você será solicitado a entrar por meio de uma janela do navegador para autenticar a solicitação.

  7. A resposta da API é impressa no console.

    {
    	"data": {
    		"addresses": {
    			"items": [
    				{
    					"AddressID": 9,
    					"City": "Bothell",
    					"StateProvince": "Washington",
    					"CountryRegion": "United States"
    				},
    				{
    					"AddressID": 11,
    					"City": "Bothell",
    					"StateProvince": "Washington",
    					"CountryRegion": "United States"
    				},
    				{
    					"AddressID": 25,
    					"City": "Dallas",
    					"StateProvince": "Texas",
    					"CountryRegion": "United States"
    				},
    				{
    					"AddressID": 28,
    					"City": "Phoenix",
    					"StateProvince": "Arizona",
    					"CountryRegion": "United States"
    				},
    				{
    					"AddressID": 32,
    					"City": "Montreal",
    					"StateProvince": "Quebec",
    					"CountryRegion": "Canada"
    				}
    			]
    		}
    	}
    }
    

Node.JS

  1. Crie um arquivo nomeado editor.js e cole o código gerado na consulta de exemplo acima.

  2. Na mesma pasta editor.js, crie um package.json arquivo com o seguinte conteúdo:

    {
      "type": "module",
      "dependencies": {}
    }
    
  3. Instalar Node.js em seu computador de desenvolvimento (inclui npm)

  4. Execute npm install @azure/identity ou um comando semelhante no gerenciador de pacotes escolhido para instalar a versão mais recente da biblioteca de identidade.

  5. Execute node editor.js para executar o código.

  6. Você será solicitado a entrar por meio de uma janela do navegador para autenticar a solicitação.

  7. A resposta da API é impressa no console.

    {
    	"data": {
    		"addresses": {
    			"items": [
    				{
    					"AddressID": 9,
    					"City": "Bothell",
    					"StateProvince": "Washington",
    					"CountryRegion": "United States"
    				},
    				{
    					"AddressID": 11,
    					"City": "Bothell",
    					"StateProvince": "Washington",
    					"CountryRegion": "United States"
    				},
    				{
    					"AddressID": 25,
    					"City": "Dallas",
    					"StateProvince": "Texas",
    					"CountryRegion": "United States"
    				},
    				{
    					"AddressID": 28,
    					"City": "Phoenix",
    					"StateProvince": "Arizona",
    					"CountryRegion": "United States"
    				},
    				{
    					"AddressID": 32,
    					"City": "Montreal",
    					"StateProvince": "Quebec",
    					"CountryRegion": "Canada"
    				}
    			]
    		}
    	}
    }
    

Desenvolvimento de consultas e mutações

Os exemplos a seguir demonstram a sintaxe de consulta e mutação do GraphQL usando os dados de exemplo do AdventureWorks. Esses exemplos pressupõem que você esteja trabalhando com um Fabric Data Warehouse que dá suporte a operações de gravação (mutações). As fontes de dados acessadas por meio de Endpoints de Análise SQL (como Lakehouses e bancos de dados espelhados) são somente leitura e só dão suporte a consultas, não modificações.

Examine este breve trecho de esquema do GraphQL do AdventureWorks. Ele define um Product tipo com consultas para ler um único produto ou listar todos os produtos e mutações para criar, atualizar ou excluir produtos, dando suporte a todos os casos de uso CRUDL (criar, ler, atualizar, excluir, listar).

{
  type Product {
    ProductID: Int!
    Name: String!
    ProductNumber: String!
    Color: String
    ListPrice: Float!
    SellStartDate: DateTime!
  }

  type Query {
    products(first: Int, filter: ProductFilterInput): ProductConnection
    products_by_pk(ProductID: Int!): Product
  }

  type Mutation {
    createProduct(Name: String!, ProductNumber: String!, ListPrice: Float!, SellStartDate: DateTime!): Product
    updateProduct(ProductID: Int!, Name: String, Color: String, ListPrice: Float): Product
    deleteProduct(ProductID: Int!): Boolean
  }
}

Leia os dados expostos por meio do GraphQL usando qualquer consulta definida no esquema. A products_by_pk consulta recupera um único produto por sua chave primária:

query MyQuery {
  products_by_pk(ProductID: 680) {
    ProductID
    Name
    ProductNumber
    Color
    ListPrice
  }
}

Resposta:

{
  "data": {
    "products_by_pk": {
      "ProductID": 680,
      "Name": "HL Road Frame - Black, 58",
      "ProductNumber": "FR-R92B-58",
      "Color": "Black",
      "ListPrice": 1431.50
    }
  }
}

Use mutações como createProduct para gravar dados e criar um novo produto com os parâmetros necessários.

mutation MyMutation {
  createProduct(
    Name: "Mountain Bike Helmet - Blue", 
    ProductNumber: "HE-M897-B", 
    ListPrice: 89.99,
    SellStartDate: "2025-01-01T00:00:00Z"
  ) {
    ProductID
    Name
    ProductNumber
    ListPrice
  }
}

Resposta:

{
  "data": {
    "createProduct": {
      "ProductID": 1001,
      "Name": "Mountain Bike Helmet - Blue",
      "ProductNumber": "HE-M897-B",
      "ListPrice": 89.99
    }
  }
}

Variáveis de consulta

Use o painel Variáveis de Consulta no lado direito da guia Consulta para passar parâmetros como variáveis para suas consultas ou mutações. As variáveis funcionam como variáveis em outras linguagens de programação. Cada variável é declarada com um nome usado para acessar o valor armazenado nela. Usando o exemplo de mutação anterior, modifique-o ligeiramente para usar variáveis de consulta.

mutation MyMutation ($name: String!, $productNumber: String!, $listPrice: Float!, $sellStartDate: DateTime!){
  createProduct(
    Name: $name, 
    ProductNumber: $productNumber, 
    ListPrice: $listPrice,
    SellStartDate: $sellStartDate
  ) {
    ProductID
    Name
    ProductNumber
    ListPrice
  }
}

Defina variáveis no painel Variáveis de consulta usando o exemplo a seguir.

{
  "name": "Mountain Bike Helmet - Blue",
  "productNumber": "HE-M897-B",
  "listPrice": 89.99,
  "sellStartDate": "2025-01-01T00:00:00Z"
}

As variáveis tornam o código de mutação mais limpo, mais fácil de ler, testar e modificar. Eles também simplificam a reutilização da mesma mutação com valores diferentes apenas alterando as variáveis.