
Visão geral
A API do Microsoft Fabric para GraphQL facilita a consulta e a alteração de dados de um banco de dados Fabric-SQL e outras fontes de dados do Fabric, como Data Warehouse e Lakehouse, com esquemas fortemente tipados e uma linguagem de consulta avançada, permitindo que os desenvolvedores criem uma API intuitiva sem escrever código de servidor personalizado. Embora não seja possível personalizar resolvedores ou definir novas mutações diretamente, pois elas são geradas automaticamente, você pode usar procedimentos armazenados para encapsular e reutilizar lógica de negócios complexa, incluindo validação de entrada e transformação de dados.
Neste artigo, você aprenderá a usar um procedimento armazenado para registrar novos produtos, com lógica do lado do servidor para validação, formatação e geração de ID — tudo exposto por meio de uma mutação do GraphQL no Fabric.
Primeiros passos
Comece criando um banco de dados SQL no Fabric:
- No workspace do Fabric, selecione Novo Item e, em seguida, Banco de dados SQL (versão prévia).
- Dê um nome ao seu banco de dados e selecione Dados de exemplo para criar rapidamente todas as tabelas e dados necessários em seu banco de dados.
Cenário: cadastrar um novo produto
Suponha que você queira criar um novo produto com:
- Validação da lógica de precificação (por exemplo, ListPrice > StandardCost)
- Transformação (por exemplo, colocar em maiúscula a primeira letra do nome do produto, o acabamento e o número do produto em maiúsculas)
- Geração de ProductID (incrementando o ProductID mais recente)
Etapa 1: Criar o procedimento armazenado
Aqui está um procedimento armazenado T-SQL que encapsula toda a lógica de negócios de que precisamos. Em seu banco de dados SQL, clique em Nova Consulta e use a seguinte instrução:
CREATE PROCEDURE SalesLT.RegisterProduct
@Name nvarchar(50),
@ProductNumber nvarchar(25),
@StandardCost money,
@ListPrice money,
@SellStartDate datetime
AS
BEGIN
SET NOCOUNT ON;
SET IDENTITY_INSERT SalesLT.Product ON;
— Validate pricing logic
IF @ListPrice <= @StandardCost
THROW 50005, ‘ListPrice must be greater than StandardCost.’, 1;
— Transform product name: capitalize first letter only
DECLARE @CleanName nvarchar(50);
SET @CleanName = UPPER(LEFT(LTRIM(RTRIM(@Name)), 1)) + LOWER(SUBSTRING(LTRIM(RTRIM(@Name)), 2, 49));
— Trim and uppercase product number
DECLARE @CleanProductNumber nvarchar(25);
SET @CleanProductNumber = UPPER(LTRIM(RTRIM(@ProductNumber)));
— Generate ProductID by incrementing the latest existing ID
DECLARE @ProductID int;
SELECT @ProductID = ISNULL(MAX(ProductID), 0) + 1 FROM SalesLT.Product;
INSERT INTO SalesLT.Product (
ProductID,
Name,
ProductNumber,
StandardCost,
ListPrice,
SellStartDate
)
OUTPUT
inserted.ProductID,
inserted.Name,
inserted.ProductNumber,
inserted.StandardCost,
inserted.ListPrice,
inserted.SellStartDate
VALUES (
@ProductID,
@CleanName,
@CleanProductNumber,
@StandardCost,
@ListPrice,
@SellStartDate
);
END;
Clique em Executar para testar a execução. Você observará um novo procedimento armazenado RegisterProduct na pasta Procedimentos Armazenados no banco de dados SalesLT. Use a seguinte consulta para testar a lógica do procedimento:
DECLARE @RC int
DECLARE @Name nvarchar(50)
DECLARE @ProductNumber nvarchar(25)
DECLARE @StandardCost money
DECLARE @ListPrice money
DECLARE @SellStartDate datetime
-- TODO: Set parameter values here.
Set @Name = 'test product'
Set @ProductNumber = 'tst-0012'
Set @StandardCost = '10.00'
Set @ListPrice = '9.00'
Set @SellStartDate = '2025-05-01T00:00:00Z'
EXECUTE @RC = [SalesLT].[RegisterProduct]
@Name
,@ProductNumber
,@StandardCost
,@ListPrice
,@SellStartDate
GO
Etapa 2: Criar uma API do GraphQL
Criar uma API a partir de sua tabela SQL é rápido, fácil e direto. Você só precisa clicar no botão Nova API para GraphQL na faixa de opções e dar um nome à sua API.
Em seguida, selecione as tabelas SalesLT em seu banco de dados e o procedimento armazenado que acabamos de criar e clique em Carregar:

A API do GraphQL, o esquema e todos os resolvedores são gerados automaticamente em segundos com base nas tabelas SQL e no procedimento armazenado.
Etapa 3: Chamar o procedimento do GraphQL
Quando a API estiver pronta, o procedimento armazenado ficará disponível como uma mutação no esquema GraphQL do Fabric. Vá para o editor de consultas e execute a seguinte mutação:
mutation {
executeRegisterProduct (
Name: " graphQL swag ",
ProductNumber: "gql-swag-001",
StandardCost: 10.0,
ListPrice: 15.0,
SellStartDate: "2025-05-01T00:00:00Z"
) {
ProductID
Name
ProductNumber
StandardCost
ListPrice
SellStartDate
}
}

Dicas
- O Fabric GraphQL gera automaticamente campos de mutação para procedimentos armazenados que retornam um conjunto de resultados definido na saída do procedimento.
- A lógica de negócios vive dentro do procedimento, não do cliente.
- Use a geração de ID determinística somente se você não depender de colunas de identidade.
Resumo
Com este artigo você aprendeu a combinar:
✅ API do Microsoft Fabric para GraphQL
✅ Banco de dados SQL do
✅ Microsoft Fabric Procedimentos armazenados para lógica de negócios
Isso lhe dá o poder de definir regras robustas e consistentes em SQL para seus dados — e acessá-los de forma limpa via GraphQL.
🔗 Recursos
- Visão geral do Microsoft Fabric GraphQL
- Banco de dados SQL no Microsoft Fabric
- Introdução ao GraphQL no Microsoft Fabric
Source: Blog Microsoft Fabric.
Descomplique sua arquitetura de dados com quem entende do assunto
Se você chegou até aqui, já percebeu como as mutações inteligentes no Microsoft Fabric com GraphQL podem transformar seu controle sobre dados e processos. Essa combinação entrega agilidade, padronização e escalabilidade sem precisar escrever uma linha de código do lado do servidor — tudo com governança e segurança embutidas.
Quer aplicar essas boas práticas na sua operação agora mesmo? Agende uma conversa com os especialistas da DataEX e descubra como podemos acelerar seus projetos com o melhor do Microsoft Fabric, GraphQL e arquitetura orientada a dados.
Preencha o formulário abaixo e nosso time de especialistas entrará em contato.
E não esqueça de ler o blog Data Universe diariamente e nos seguir em nossas social networks.
