Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Microsoft Fabric API untuk GraphQL memudahkan kueri dan mutasi data dari database Fabric SQL dan sumber data Fabric lainnya seperti Gudang Data dan Lakehouse, dengan skema yang sangat diketik dan bahasa kueri yang kaya yang memungkinkan pengembang membuat API intuitif tanpa menulis kode server kustom. Anda dapat menggunakan prosedur tersimpan untuk merangkum dan menggunakan kembali logika bisnis yang kompleks, termasuk validasi input dan transformasi data.
Dalam contoh ini kita mempelajari cara menggunakan prosedur tersimpan untuk mendaftarkan produk baru, dengan logika sisi server untuk validasi, pemformatan, dan pembuatan ID, semuanya diekspos melalui mutasi GraphQL di Fabric.
Mulai sekarang!
Kami memulai dengan membuat database SQL di Fabric:
- Di ruang kerja Fabric Anda, pilih Item Baru lalu database SQL (pratinjau).
- Beri nama database Anda, lalu pilih Contoh data untuk membuat semua tabel dan data yang diperlukan dengan cepat di database Anda.
Skenario: mendaftarkan produk baru
Misalkan Anda ingin membuat produk baru dengan:
- Validasi logika harga (misalnya, . ListPrice > StandardCost)
- Transformasi (misalnya,. kapitalkan huruf pertama nama produk, pangkas lalu nomor produk huruf besar)
- Pembuatan ProductID (dengan meningkatkan ProductID terbaru)
Langkah 1: Buat Prosedur Tersimpan
Berikut adalah prosedur tersimpan T-SQL yang merangkum semua logika bisnis yang kita butuhkan. Di database SQL Anda, klik Kueri Baru dan gunakan pernyataan berikut:
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 Jalankan untuk menguji eksekusi. Anda melihat prosedur tersimpan baru RegisterProduct di bawah folder Prosedur Tersimpan di database SalesLT . Gunakan kueri berikut untuk menguji logika prosedur:
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
Langkah 2: Membuat API GraphQL
Membuat API dari tabel SQL Anda cepat, mudah, dan langsung. Anda hanya perlu mengklik tombol API Baru untuk GraphQL di pita database SQL dan beri nama API Anda.
Selanjutnya pilih tabel SalesLT di database Anda dan prosedur tersimpan yang baru saja kami buat, lalu klik Muat:
GraphQL API, skema, dan semua resolver secara otomatis dihasilkan dalam hitungan detik berdasarkan tabel SQL dan prosedur tersimpan.
Langkah 3: Panggil prosedur dari GraphQL
Setelah API siap, prosedur tersimpan tersedia sebagai mutasi dalam skema Fabric GraphQL. Buka editor kueri dan jalankan mutasi berikut:
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 secara otomatis menghasilkan bidang mutasi untuk prosedur tersimpan yang mengembalikan tataan hasil yang ditentukan dalam output prosedur.
- Logika bisnis berada di dalam prosedur, bukan klien.
- Gunakan pembuatan ID deterministik hanya jika Anda tidak mengandalkan kolom identitas.
Mengekspos prosedur tersimpan melalui FABRIC API memberi Anda kekuatan untuk menentukan aturan yang kuat dan konsisten di SQL untuk data Anda, dan mengaksesnya dengan bersih melalui GraphQL.
Konten terkait
- Fabric API untuk Editor GraphQL
- Basis data SQL di Microsoft Fabric