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.
Penyusun API Data (DAB) mendukung menggabungkan beberapa operasi mutasi bersama-sama ke dalam satu transaksi. Beberapa mutasi mendukung skenario di mana Anda perlu membuat beberapa item milik entitas yang sama atau membuat beberapa item milik entitas terkait. Panduan ini memandu skenario sampel menggunakan beberapa operasi mutasi.
Prasyarat
- Server dan database SQL yang ada.
- CLI penyusun API Data. Menginstal CLI
- Klien basis data (SQL Server Management Studio, dan lain-lain)
- Jika Anda tidak memiliki klien yang terinstal, instal SQL Server Management Studio.
Membuat tabel
Mulailah dengan membuat dua tabel dasar untuk mewakili buku dan bab masing-masing. Buku memiliki hubungan satu-ke-banyak dengan bab-bab yang bersesuaian.
Sambungkan ke database SQL menggunakan klien atau alat pilihan Anda.
Buat tabel bernama
Booksdengan kolomid,title,year, danpages.DROP TABLE IF EXISTS dbo.Books; CREATE TABLE dbo.Books ( id int NOT NULL PRIMARY KEY, title nvarchar(1000) NOT NULL, [year] int null, [pages] int null ) GOBuat tabel lain bernama
Chaptersdenganidkolom ,name, danpages. Buat kolombook_iddengan hubungan kunci asing ke kolomiddari tabelBooks.DROP TABLE IF EXISTS dbo.Chapters; CREATE TABLE dbo.Chapters ( id int NOT NULL PRIMARY KEY, [name] nvarchar(1000) NOT NULL, [pages] int null, book_id int NOT NULL, FOREIGN KEY (book_id) REFERENCES dbo.Books(id) ) GOValidasi bahwa tabel Anda dibuat dengan beberapa kueri SQL umum.
SELECT * FROM dbo.BooksSELECT * FROM dbo.ChaptersNota
Pada titik ini, kueri tidak boleh mengembalikan data apa pun.
Membangun file konfigurasi
Sekarang, gunakan DAB CLI untuk membuat file konfigurasi, entitas, dan hubungan entitas.
Buka terminal
Simpan string koneksi database SQL Anda sebagai variabel shell bernama
SQL_CONNECTION_STRING.SQL_CONNECTION_STRING="<your-sql-connection-string>"$SQL_CONNECTION_STRING="<your-sql-connection-string>"Jalankan
dab initmenentukan properti berikut.Nilai database-typemssqlgraphql.multiple-create.enabledtruehost-modedevelopmentconnection-stringGunakan variabel shell yang SQL_CONNECTION_STRINGdibuat pada langkah sebelumnya.dab init --database-type "mssql" --graphql.multiple-create.enabled true --host-mode "development" --connection-string $SQL_CONNECTION_STRINGJalankan
dab adduntuk menambahkan entitas Buku yang menentukan properti berikut.Nilai sourcedbo.Bookspermissionsanonymous:*dab add Book --source "dbo.Books" --permissions "anonymous:*"Jalankan
dab addlagi untuk menambahkan entitas Bab dengan menetapkan properti berikut.Nilai sourcedbo.Chapterspermissionsanonymous:*dab add Chapter --source "dbo.Chapters" --permissions "anonymous:*"Jalankan
dab updateuntuk membuat hubungan Buku ke Bab yang menentukan properti berikut.Nilai relationshipchapterscardinalitymanydab update Book --relationship chapters --target.entity Chapter --cardinality manyTerakhir, jalankan
dab updateuntuk terakhir kalinya untuk membuat hubungan Bab ke Buku yang menentukan properti berikut.Nilai relationshipbookcardinalityonedab update Chapter --relationship book --target.entity Book --cardinality one
Melaksanakan beberapa mutasi pembuatan
Untuk menyelesaikan segala sesuatunya, gunakan DAB CLI untuk menjalankan API dan menguji endpoint GraphQL menggunakan Banana Cake Pop.
Mulai mesin runtime menggunakan konfigurasi saat ini.
dab startNavigasikan ke
/graphqltitik akhir relatif untuk aplikasi anda yang sedang berjalan. Titik akhir ini membuka antarmuka Banana Cake Pop.Nota
Secara default, titik akhir ini adalah
https://localhost:5001/graphql.Tulis mutasi GraphQL untuk membuat tiga baris berbeda di dua tabel dalam database Anda. Mutasi ini menggunakan entitas
BookdanChapterdalam satu proses "buat ganda". Gunakan properti berikut untuk mutasi.Jenis entitas ID Nama Halaman Tahun Buku 1 Pengantar penyusun API Data 200 2024 Bab 2 File konfigurasi 150 Bab 3 Berlari 50 mutation { createBook( item: { id: 1 title: "Introduction to Data API builder" pages: 200 year: 2024 chapters: [ { id: 2 name: "Configuration files", pages: 150 } { id: 3 name: "Running", pages: 50 } ] } ) { id title pages year chapters { items { name pages } } } }Perhatikan output dari mutasi. Mutasi membuat data terkait untuk kedua jenis entitas.
{ "data": { "createBook": { "id": 1, "title": "Introduction to Data API builder", "pages": 200, "year": 2024, "chapters": { "items": [ { "name": "Configuration files", "pages": 150 }, { "name": "Running", "pages": 50 } ] } } } }Gunakan kueri GraphQL untuk mengambil semua buku dalam database Anda termasuk bab terkait.
query { books { items { pages title year chapters { items { name pages } } } } }Nota
Pada titik ini, kueri harus mengembalikan satu buku dengan dua bab.
Amati output dari kueri ini dengan array buku termasuk array bab berlapis mereka.
{ "data": { "books": { "items": [ { "pages": 200, "title": "Introduction to Data API builder", "year": 2024, "chapters": { "items": [ { "name": "Configuration files", "pages": 150 }, { "name": "Running", "pages": 50 } ] } } ] } } }Sambungkan lagi ke database SQL menggunakan klien atau alat pilihan Anda.
Validasi bahwa data Anda berhasil dibuat menggunakan kueri SQL.
SELECT c.name AS chapterName, c.pages AS chapterPages, b.title AS bookName, b.year AS releaseYear FROM dbo.Chapters c LEFT JOIN dbo.Books b ON b.id = c.book_idNota
Kueri ini harus mengembalikan dua rekaman bab.