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 pencarian dan mutasi data dari database SQL di Fabric dan sumber data Fabric lainnya seperti gudang dan lakehouse, dengan skema yang sangat diketik dan bahasa query yang kaya memungkinkan pengembang membuat API intuitif tanpa harus menulis kode server khusus. Anda dapat menggunakan prosedur tersimpan untuk merangkum dan menggunakan kembali logika bisnis yang kompleks, termasuk validasi input dan transformasi data.
Siapa yang memakai prosedur tersimpan dengan GraphQL?
Prosedur tersimpan di GraphQL sangat berharga untuk:
- Data engineer yang mengimplementasikan alur kerja validasi, transformasi, dan pemrosesan data di database SQL di Fabric
- Pengembang backend memperkenalkan logika bisnis kompleks dari gudang data Fabric melalui API GraphQL modern
- Arsitek aplikasi yang merancang API yang aman dan berkinerja yang merangkum aturan bisnis dalam platform Fabric
- Pengembang basis data memodernisasi basis data SQL yang sudah ada dalam prosedur tersimpan Fabric dengan antarmuka GraphQL
Gunakan prosedur tersimpan saat Anda memerlukan logika sisi server untuk validasi data, perhitungan kompleks, atau operasi database multi-langkah.
Artikel ini menunjukkan cara mengekspos prosedur tersimpan melalui mutasi GraphQL di Fabric. Contohnya mengimplementasikan alur kerja pendaftaran produk dengan validasi sisi server, transformasi data, dan pembuatan ID—semua dienkapsulasi dalam prosedur tersimpan dan dapat diakses melalui GraphQL.
Prasyarat
Sebelum Anda memulai, Anda memerlukan database SQL di Fabric dengan data contoh:
- Di ruang kerja Fabric Anda, pilih Item Baru>Database SQL (pratinjau)
- Beri nama database Anda
- Pilih Contoh data untuk membuat tabel dan data yang diperlukan
Ini membuat database sampel AdventureWorks, yang mencakup SalesLT.Product tabel yang digunakan dalam contoh ini.
Skenario: mendaftarkan produk baru
Contoh ini membuat prosedur tersimpan untuk mendaftarkan produk baru dengan logika bisnis bawaan:
- Validasi: Memastikan ListPrice lebih besar dari StandardCost
- Transformasi data: Mengkapitalisasi nama produk dan menormalkan nomor produk
- Pembuatan ID: Secara otomatis menetapkan ProductID berikutnya yang tersedia
Dengan merangkum logika ini dalam prosedur tersimpan, Anda memastikan kualitas data yang konsisten terlepas dari aplikasi klien mana yang mengirimkan data.
Langkah 1: Buat prosedur tersimpan
Buat prosedur tersimpan T-SQL yang menerapkan logika pendaftaran produk:
Di database SQL Anda, pilih Kueri Baru
Jalankan 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;Pilih Jalankan untuk membuat prosedur tersimpan
Setelah pembuatan, Anda akan melihat RegisterProduct di bawah Prosedur Tersimpan dalam skema SalesLT . Uji prosedur untuk memverifikasi bahwa prosedur berfungsi dengan benar:
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
Sekarang buat API GraphQL yang mengekspos tabel dan prosedur tersimpan:
- Di pita database SQL, pilih API Baru untuk GraphQL
- Beri nama API Anda
- Di layar Dapatkan data, pilih skema SalesLT
- Pilih tabel yang ingin Anda ekspos dan prosedur tersimpan RegisterProduct
- Pilih 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
Fabric secara otomatis menghasilkan mutasi GraphQL untuk prosedur tersimpan. Nama mutasi mengikuti pola execute{ProcedureName}, sehingga prosedur RegisterProduct menjadi executeRegisterProduct.
Untuk menguji mutasi:
Buka API di editor kueri
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 } }
Perhatikan bagaimana logika bisnis prosedur tersimpan secara otomatis memproses input:
- "graphQL swag" menjadi "Graphql swag" (huruf besar)
- "gql-swag-001" menjadi "GQL-SWAG-001" (dengan huruf kapital)
- ProductID secara otomatis dibuat sebagai nomor berurutan berikutnya
Praktik terbaik
Saat menggunakan prosedur tersimpan dengan API untuk GraphQL:
-
Mengembalikan tataan hasil: Fabric secara otomatis menghasilkan mutasi untuk prosedur tersimpan yang menggunakan
OUTPUTatau mengembalikan tataan hasil. Kolom yang dikembalikan menjadi tipe pengembalian untuk mutasi GraphQL. - Merangkum logika bisnis: Simpan validasi, transformasi, dan perhitungan kompleks dalam prosedur tersimpan daripada dalam kode klien. Ini memastikan konsistensi di semua aplikasi.
-
Menangani kesalahan dengan anggun: Gunakan
THROWpernyataan untuk mengembalikan pesan kesalahan yang bermakna yang dapat muncul melalui API GraphQL. - Pertimbangkan pembuatan ID: Hanya gunakan logika pembuatan ID kustom (seperti menaikkan MAX) jika Anda tidak menggunakan kolom identitas. Untuk skenario produksi, kolom identitas biasanya lebih dapat diandalkan.
- Parameter dokumen: Gunakan nama parameter jelas yang diterjemahkan dengan baik ke nama bidang GraphQL.
Dengan mengekspos prosedur tersimpan melalui Fabric API untuk GraphQL, Anda menggabungkan kekuatan logika prosedural SQL dengan antarmuka kueri fleksibel GraphQL, menciptakan pola akses data yang kuat dan dapat dipertahankan.
Konten terkait
- Fabric API untuk Editor GraphQL
- Database SQL di Fabric