Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
L'API di Microsoft Fabric per GraphQL semplifica le query e le modifiche dei dati da un database SQL di Fabric e da altre origini dati di Fabric, come Data Warehouse e Lakehouse, con schemi fortemente tipizzati e un linguaggio di query avanzato che consente agli sviluppatori di creare un'API intuitiva senza scrivere codice server personalizzato. È possibile usare stored procedure per incapsulare e riutilizzare una logica di business complessa, inclusa la convalida e la trasformazione dei dati di input.
In questo esempio viene illustrato come usare una stored procedure per registrare nuovi prodotti, con logica lato server per la convalida, la formattazione e la generazione di ID, tutte esposte tramite una mutazione GraphQL in Fabric.
Inizia subito
Per iniziare, creare un database SQL in Fabric:
- Nello spazio di lavoro Fabric, seleziona Nuovo elemento e quindi database SQL (anteprima).
- Assegnare un nome al database, quindi selezionare Dati di esempio per creare rapidamente tutte le tabelle e i dati necessari nel database.
Scenario: registrare un nuovo prodotto
Si supponga di voler creare un nuovo prodotto con:
- Convalida della logica dei prezzi , ad esempio. ListPrice > StandardCost)
- Trasformazione (ad esempio, capitalizzare la prima lettera del nome del prodotto, tagliare e poi trasformare in maiuscolo il numero di prodotto)
- Generazione di ProductID (incrementando l'id prodotto più recente)
Passaggio 1: Creare la Stored Procedure
Ecco una stored procedure T-SQL che incapsula tutta la logica di business necessaria. Nel database SQL fare clic su Nuova query e usare l'istruzione seguente:
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;
Fare clic su Esegui per testare l'esecuzione. Ti accorgi di una nuova stored procedure RegisterProduct nella cartella Stored Procedures nel database SalesLT. Usare la query seguente per testare la logica della procedura:
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
Passaggio 2: Creare un'API GraphQL
La creazione di un'API dalla tua tabella SQL è rapida, semplice e intuitiva. È sufficiente fare clic sul pulsante Nuova API per GraphQL nella barra multifunzione del database SQL e assegnare un nome all'API.
Selezionate innanzitutto le tabelle SalesLT nel vostro database e la stored procedure che abbiamo appena creato, quindi cliccate su Carica:
L'API GraphQL, lo schema e tutti i resolver vengono generati automaticamente in pochi secondi in base alle tabelle SQL e alla stored procedure.
Passaggio 3: Chiamare la procedura da GraphQL
Quando l'API è pronta, la stored procedure diventa disponibile come mutazione nello schema GraphQL di Fabric. Passare all'editor di query ed eseguire la mutazione seguente:
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
}
}
Suggerimenti
- Fabric GraphQL genera automaticamente campi di mutazione per le stored procedure che restituiscono un set di risultati definito nell'output della procedura.
- La logica di business si trova all'interno della procedura, non del client.
- Usare la generazione di ID deterministici solo se non si fa affidamento sulle colonne Identity.
L'esposizione di stored procedure tramite le API fabric consente di definire regole affidabili e coerenti in SQL per i dati e accedervi in modo pulito tramite GraphQL.