Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Veri API'si oluşturucusu (DAB), birden çok mutasyon işlemini tek bir işlemde birleştirmeyi destekler. Birden çok mutasyon, aynı varlığa ait birden çok öğe oluşturmanız veya ilgili bir varlığa ait birden çok öğe oluşturmanız gereken senaryoları destekler. Bu kılavuzda, çoklu mutasyon işleminin kullanıldığı örnek senaryolarda yol gösterilir.
Önkoşullar
- Mevcut SQL sunucusu ve veritabanı.
- Veri API'si oluşturucu CLI. CLI'yi yükleme
- Veritabanı istemcisi (SQL Server Management Studio, Azure Data Studio vb.)
- Yüklü bir istemciniz yoksa Azure Data Studio'yu yükleyin
Tablo oluştur
Kitapları ve ilgili bölümlerini temsil eden iki temel tablo oluşturarak başlayın. Kitapların ilgili bölümleriyle bire çok ilişkisi vardır.
Tercih ettiğiniz istemciyi veya aracı kullanarak SQL veritabanına bağlanın.
Booksadlıid,title,yearvepagessütunlarıyla bir tablo oluşturun.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 ) GO,
namevepagessütunlarıylaidadlıChaptersbaşka bir tablo oluşturun.book_idsütunundaBookstablosununidsütunuyla yabancı anahtar ilişkisi kurarak bir sütun oluşturun.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) ) GOTablolarınızın bazı yaygın SQL sorgularıyla oluşturulduğunu doğrulayın.
SELECT * FROM dbo.BooksSELECT * FROM dbo.ChaptersUyarı
Bu noktada sorgular herhangi bir veri döndürmemelidir.
Yapılandırma dosyası oluşturma
Şimdi bir yapılandırma dosyası, varlıklar ve varlık ilişkileri oluşturmak için DAB CLI'yi kullanın.
Terminal açma
SQL veritabanı bağlantı dizenizi adlı
SQL_CONNECTION_STRINGbir kabuk değişkeni olarak depolayın.SQL_CONNECTION_STRING="<your-sql-connection-string>"$SQL_CONNECTION_STRING="<your-sql-connection-string>"Aşağıdaki özellikleri belirterek komutunu çalıştırın
dab init.Değer database-typemssqlgraphql.multiple-create.enabledtruehost-modedevelopmentconnection-stringSQL_CONNECTION_STRINGÖnceki adımda oluşturulan kabuk değişkenini kullanın.dab init --database-type "mssql" --graphql.multiple-create.enabled true --host-mode "development" --connection-string $SQL_CONNECTION_STRINGKomutunu çalıştırarak
dab addaşağıdaki özellikleri belirten bir Kitap varlığı ekleyin.Değer sourcedbo.Bookspermissionsanonymous:*dab add Book --source "dbo.Books" --permissions "anonymous:*"Şimdi aşağıdaki özellikleri belirten bir Bölüm varlığı eklemek için yeniden çalıştırın
dab add.Değer sourcedbo.Chapterspermissionsanonymous:*dab add Chapter --source "dbo.Chapters" --permissions "anonymous:*"Aşağıdaki özellikleri belirterek Kitap-Bölüm ilişkisini oluşturmak için komutunu çalıştırın
dab update.Değer relationshipchapterscardinalitymanydab update Book --relationship chapters --target.entity Chapter --cardinality manySon olarak, aşağıdaki özellikleri belirten Bölüm-Kitap ilişkisini oluşturmak için son bir kez çalıştırın
dab update.Değer relationshipbookcardinalityonedab update Chapter --relationship book --target.entity Book --cardinality one
Birden çok oluşturma mutasyonu yürütme
Öğeleri sarmak için DAB CLI kullanarak API'yi çalıştırın ve Banana Cake Pop kullanarak GraphQL uç noktasını test edin.
Geçerli yapılandırmayı kullanarak çalışma zamanı motorunu başlatın.
dab startÇalışan uygulamanızın
/graphqlgöreli uç noktasına gidin. Bu uç nokta Banana Cake Pop arabirimini açar.Uyarı
Varsayılan olarak, bu olacaktır
https://localhost:5001/graphql.Veritabanınızdaki iki tablo arasında üç ayrı satır oluşturmak için bir GraphQL mutasyonu yazın. Bu mutasyon, tek bir "çoklu oluşturma" işleminde hem
Bookhem deChaptervarlıklarını kullanır. Mutasyon için aşağıdaki özellikleri kullanın.Varlık türü Kimlik İsim Sayfalar Yıl Kitap 1 Veri API'sini oluşturucuya giriş 200 2024 Bölüm 2 Yapılandırma dosyaları Yüz elli Bölüm 3 Koşmak 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 } } } }Mutasyonun çıktısını gözlemleyin. Mutasyon her iki varlık türü için de ilgili verileri oluşturdu.
{ "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 } ] } } } }Veritabanınızdaki ilgili bölümler de dahil olmak üzere tüm kitapları almak için GraphQL sorgusu kullanın.
query { books { items { pages title year chapters { items { name pages } } } } }Uyarı
Bu noktada sorgunun iki bölümü olan tek bir kitabı döndürmesi gerekir.
İç içe bölüm dizileri de dahil olmak üzere bir dizi kitapla bu sorgunun çıkışını gözlemleyin.
{ "data": { "books": { "items": [ { "pages": 200, "title": "Introduction to Data API builder", "year": 2024, "chapters": { "items": [ { "name": "Configuration files", "pages": 150 }, { "name": "Running", "pages": 50 } ] } } ] } } }Tercih ettiğiniz istemciyi veya aracı kullanarak SQL veritabanına yeniden bağlanın.
Verilerinizin sql sorgusu kullanılarak başarıyla oluşturulduğunu doğrulayın.
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_idUyarı
Bu sorgu iki bölüm kaydı döndürmelidir.