Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of mappen te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen om mappen te wijzigen.
Met De Microsoft Fabric-API voor GraphQL kunt u eenvoudig query's uitvoeren op gegevens uit een Fabric SQL-database en andere Fabric-gegevensbronnen, zoals Data Warehouse en Lakehouse, met sterk getypte schema's en een uitgebreide querytaal, zodat ontwikkelaars een intuïtieve API kunnen maken zonder aangepaste servercode te schrijven. U kunt opgeslagen procedures gebruiken om complexe bedrijfslogica in te kapselen en opnieuw te gebruiken, inclusief invoervalidatie en gegevenstransformatie.
In dit voorbeeld leert u hoe u een opgeslagen procedure gebruikt om nieuwe producten te registreren, met logica aan de serverzijde voor validatie, opmaak en het genereren van id's, die allemaal worden weergegeven via een GraphQL-mutatie in Fabric.
Aan de slag
We beginnen met het maken van een SQL-database in Fabric:
- Selecteer nieuw item in uw Fabric-werkruimte en vervolgens SQL-database (preview).
- Geef uw database een naam en selecteer vervolgens Voorbeeldgegevens om snel alle vereiste tabellen en gegevens in uw database te maken.
Scenario: een nieuw product registreren
Stel dat u een nieuw product wilt maken met:
- Validatie van prijslogica (bijvoorbeeld. ListPrice > StandardCost)
- Transformatie (bijvoorbeeld, de eerste letter van de productnaam met een hoofdletter schrijven, trimmen en het productnummer vervolgens in hoofdletters omzetten)
- Product-id genereren (door de nieuwste product-id te verhogen)
Stap 1: De opgeslagen procedure maken
Hier volgt een T-SQL-opgeslagen procedure die alle bedrijfslogica inkapselt die we nodig hebben. Klik in uw SQL-database op Nieuwe query en gebruik de volgende instructie:
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;
Klik op Uitvoeren om de uitvoering te testen. U ziet een nieuwe opgeslagen procedure RegisterProduct onder de map Opgeslagen procedures in de database SalesLT . Gebruik de volgende query om de procedurelogica te testen:
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
Stap 2: Een GraphQL-API maken
Het maken van een API uit uw SQL-tabel is snel, eenvoudig en overzichtelijk. U hoeft alleen op de knop Nieuwe API voor GraphQL in het lint van de SQL-database te klikken en uw API een naam te geven.
Selecteer vervolgens de SalesLT-tabellen in uw database en de opgeslagen procedure die we zojuist hebben gemaakt en klik vervolgens op Laden:
De GraphQL-API, het schema en alle resolvers worden in seconden automatisch gegenereerd op basis van de SQL-tabellen en opgeslagen procedure.
Stap 3: De procedure aanroepen vanuit GraphQL
Zodra de API gereed is, wordt de opgeslagen procedure beschikbaar als mutatie in het Fabric GraphQL-schema. Ga naar de query-editor en voer de volgende mutatie uit:
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
}
}
Tips
- Fabric GraphQL genereert automatisch mutatievelden voor opgeslagen procedures die een resultatenset retourneren die is gedefinieerd in de uitvoer van de procedure.
- Bedrijfslogica bevindt zich binnen de procedure, niet de client.
- Gebruik deterministische id-generatie alleen als u niet afhankelijk bent van identiteitskolommen.
Het beschikbaar maken van opgeslagen procedures via Fabric-API's biedt u de mogelijkheid om robuuste, consistente regels in SQL voor uw gegevens te definiëren en deze op schone wijze te openen via GraphQL.