Jaa kautta


Tallennettujen toimintosarjojen käyttäminen GraphQL:n Fabric-ohjelmointirajapinnan avulla

GraphQL:n Microsoft Fabric -ohjelmointirajapinnan avulla on helppo kysellä ja periä tietoja Fabric SQL -tietokannasta ja muista Fabric-tietolähteistä, kuten Data Warehousesta ja Lakehousesta. Niissä on vahvasti kirjoitettuja rakenteita ja monipuolinen kyselykieli, joiden avulla kehittäjät voivat luoda intuitiivisen ohjelmointirajapinnan kirjoittamatta mukautettua palvelinkoodia. Voit käyttää tallennettuja toimintosarjoja monitasoisen liiketoimintalogiikan tiivistämiseen ja uudelleenkäyttämiseen, mukaan lukien syötteiden vahvistus ja tietojen muuntaminen.

Tässä esimerkissä opimme käyttämään tallennettua toimintosarjaa uusien tuotteiden rekisteröimiseen. Palvelinpuolen logiikka vahvistusta, muotoilua ja tunnusten luontia varten näytetään Fabricissa GraphQL-mutaatiolla.

Aloittaa

Aloitamme luomalla SQL-tietokannan Fabricissa:

  1. Valitse Fabric-työtilassa Uusi kohde ja sitten SQL-tietokanta (esikatselu).
  2. Anna tietokannalle nimi ja valitse sitten Mallitiedot , niin voit luoda nopeasti kaikki tarvittavat taulukot ja tiedot tietokannassasi.

Skenaario: rekisteröi uusi tuote

Oletetaan, että haluat luoda uuden tuotteen:

  • Hinnoittelulogiikan vahvistus (esimerkiksi. ListPrice > StandardCost)
  • Muunnos (esimerkiksi, kirjoita tuotenimen ensimmäinen kirjain isolla kirjaimella, poista tuotenumero isolla kirjaimella)
  • ProductID-luonti (lisäämällä viimeisin Tuotetunnus)

Vaihe 1: Luo tallennettu toimintosarja

Tässä on T-SQL:n tallennettu toimintosarja, joka kiteyttää kaiken tarvittavan liiketoimintalogiikan. Napsauta SQL-tietokannassa Uusi kysely ja käytä seuraavaa lauseketta:

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;

Testaa suoritus valitsemalla Suorita . Huomaat uuden tallennetun toimintosarjan RegisterProduct-kohteen SalesLT-tietokannanTallennetut toimintosarjat -kansiossa. Kokeile toimintosarjan logiikkaa seuraavan kyselyn avulla:

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

Vaihe 2: Luo GraphQL-ohjelmointirajapinta

Ohjelmointirajapinnan luominen SQL-taulukosta on nopeaa, helppoa ja yksinkertaista. Sinun tarvitsee vain napsauttaa SQL-tietokannan valintanauhan Uusi ohjelmointirajapinta GraphQL:lle -painiketta ja antaa ohjelmointirajapinnallesi nimi.

Valitse tietokannan SalesLT-taulukot ja juuri luomamme tallennetut toimintosarjat ja valitse sitten Lataa:

Hae tiedot -näyttö taulukoiden ja menettelyjen valitsemiseksi GraphQL:n API:ssa.

GraphQL-ohjelmointirajapinta, rakenne ja kaikki ratkaisut luodaan automaattisesti sekunneissa SQL-taulukoiden ja tallennetun toimintosarjan perusteella.

Vaihe 3: Kutsu toimintosarjaa GraphQL:stä

Kun ohjelmointirajapinta on valmis, tallennettu toimintosarja tulee saataville mutaationa Fabric GraphQL -rakenteessa. Siirry kyselyeditoriin ja suorita seuraava mutaatio:

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
   }
}

Mutaatio GraphQL API -portaalissa, joka näyttää tulokset.

Vinkkejä

  • Fabric GraphQL luo automaattisesti mutaatiokenttiä tallennetuille toimintosarjoille, jotka palauttavat toimintosarjan tuloksessa määritetyn tulosjoukon.
  • Liiketoimintalogiikka elää toimintosarjan sisällä, ei asiakkaan.
  • Käytä determinististä tunnuksen luomista vain, jos et luota käyttäjätietojen sarakkeisiin.

Kun paljastat tallennetut toimintosarjat Fabric-ohjelmointirajapintojen kautta, voit määrittää luotettavia ja yhtenäisiä sääntöjä SQL:ssä tiedoillesi ja käyttää niitä siististi GraphQL:n kautta.