Nota
Prístup na túto stránku vyžaduje autorizáciu. Môžete sa pokúsiť prihlásiť alebo zmeniť adresár.
Prístup na túto stránku vyžaduje autorizáciu. Môžete skúsiť zmeniť adresáre.
Rozhranie Microsoft Fabric API pre GraphQL uľahčuje dotazovanie a zmrzačovanie údajov z databázy SQL služby Fabric a iných zdrojov údajov služby Fabric, ako sú napríklad Data Warehouse a Lakehouse, s výrazne zadanými schémami a bohatým jazykom dotazov, ktorý vývojárom umožňuje vytvárať intuitívne rozhranie API bez nutnosti písania vlastného kódu servera. Uložené procedúry môžete použiť na zapuzdrenie a opätovné použitie zložitej pracovnej logiky vrátane overenia vstupu a transformácie údajov.
V tomto príklade sa naučíme, ako používať uloženú procedúru na registráciu nových produktov s logikou na strane servera na overenie, formátovanie a generovanie ID, ktoré sú vystavené mutáciou GraphQL v službe Fabric.
Začať
Začneme vytvorením databázy SQL v službe Fabric:
- V pracovnom priestore služby Fabric vyberte položku Nová položka a potom databázu SQL (ukážka).
- Pomenujte databázu a potom výberom položky Vzorové údaje môžete rýchlo vytvoriť všetky požadované tabuľky a údaje v databáze.
Scenár: registrácia nového produktu
Predpokladajme, že chcete vytvoriť nový produkt s:
- Overenie cenovú logiku (napríklad. ListPrice > StandardCost)
- Transformácia (napríklad, prvé písmeno názvu produktu veľkým písmenom, orezanie a veľké číslo produktu)
- Generovanie PRODUCTID (o zvýšenie najnovšej hodnoty ProductID)
Krok 1: Vytvorenie uloženej procedúry
Tu je uložená procedúra T-SQL, ktorá obsahuje celú potrebnú obchodnú logiku. V databáze SQL kliknite na položku Nový dotaz a použite nasledujúci príkaz:
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;
Kliknutím na položku Spustiť otestujte vykonanie. Všimnite si novú uloženú procedúru RegisterProduct v priečinku Uložené procedúry v databáze SalesLT . Na testovanie logiky postupu použite nasledujúci dotaz:
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
Krok 2: Vytvorenie rozhrania API GraphQL
Vytvorenie rozhrania API z tabuľky SQL je rýchle, jednoduché a priamočiare. Stačí kliknúť na tlačidlo Nové rozhranie API pre GraphQL na páse s nástrojmi Databázy SQL a pomenovať rozhranie API.
Ďalej vyberte tabuľky SalesLT vo vašej databáze a uloženú procedúru, ktorú sme práve vytvorili, a potom kliknite na tlačidlo Načítať:
Rozhranie API, schéma a všetky rozdeľovače GraphQL sa automaticky generujú v sekundách na základe tabuliek SQL a uloženej procedúry.
Krok 3: Volanie postupu z GraphQL
Akonáhle je rozhranie API pripravené, uložená procedúra sa stane dostupnou ako mutácia v schéme Fabric GraphQL. Prejdite na editor dotazov a vykonajte nasledujúcu mutáciu:
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
}
}
Tipy
- Fabric GraphQL automaticky generuje mutácie polia pre uložené procedúry, ktoré vracajú výsledok súbor definovaný vo výstupe postupu.
- Obchodná logika žije v rámci postupu, nie klienta.
- Deterministické ID generovanie použite iba vtedy, ak sa nespoliehate na stĺpce identity.
Vystavenie uložených procedúr prostredníctvom rozhrania API služby Fabric vám umožňuje definovať pre svoje údaje robustné a konzistentné pravidlá v SQL a rýchlo k nim pristupovať prostredníctvom GraphQL.
Súvisiaci obsah
- Fabric API pre GraphQL Editor
- Databáza SQL v službe Microsoft Fabric