Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Nástroj pro rozhraní Data API (DAB) podporuje kombinování více operací změn v rámci jediné transakce. Vícenásobné mutace podporují scénáře, ve kterých potřebujete vytvořit více položek patřících stejné entitě nebo vytvořit více položek patřících k související entitě. Tato příručka vás provede ukázkovým scénářem s využitím více mutací v jedné operaci.
Požadavky
- Existující sql server a databáze.
- Rozhraní příkazového řádku pro tvorbu API dat. Instalace rozhraní příkazového řádku
- Databázový klient (SQL Server Management Studio, Azure Data Studio atd.)
- Pokud nemáte nainstalovaného klienta, nainstalujte si Azure Data Studio.
Vytváření tabulek
Začněte vytvořením dvou základních tabulek, které představují knihy a jejich příslušné kapitoly. Knihy mají vztah jedna ku mnoha se svými odpovídajícími kapitolami.
Připojte se k databázi SQL pomocí preferovaného klienta nebo nástroje.
Vytvořte tabulku pojmenovanou
Booksse sloupciid,title,yearapages.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 ) GOVytvořte další tabulku s názvem
Chapters,id,nameapagessloupci. Vytvořtebook_idsloupec s relací cizího klíče seidsloupcemBookstabulky.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) ) GOOvěřte, že se tabulky vytvářejí pomocí některých běžných dotazů SQL.
SELECT * FROM dbo.BooksSELECT * FROM dbo.ChaptersPoznámka:
V tomto okamžiku by dotazy neměly vracet žádná data.
Konfigurační soubor sestavení
Teď pomocí rozhraní příkazového řádku DAB vytvořte konfigurační soubor, entity a relace entit.
Otevření terminálu
Uložte připojovací řetězec databáze SQL jako proměnnou prostředí s názvem
SQL_CONNECTION_STRING.SQL_CONNECTION_STRING="<your-sql-connection-string>"$SQL_CONNECTION_STRING="<your-sql-connection-string>"Spusťte
dab initzádáním následujících vlastností.Hodnota database-typemssqlgraphql.multiple-create.enabledtruehost-modedevelopmentconnection-stringPoužijte proměnnou skořápky SQL_CONNECTION_STRINGvytvořenou v předchozím kroku.dab init --database-type "mssql" --graphql.multiple-create.enabled true --host-mode "development" --connection-string $SQL_CONNECTION_STRINGSpuštěním
dab addpřidejte entitu Knihy určující následující vlastnosti.Hodnota sourcedbo.Bookspermissionsanonymous:*dab add Book --source "dbo.Books" --permissions "anonymous:*"Znovu spusťte
dab adda přidejte entitu kapitoly , která teď určuje následující vlastnosti.Hodnota sourcedbo.Chapterspermissionsanonymous:*dab add Chapter --source "dbo.Chapters" --permissions "anonymous:*"Spuštěním
dab updatepříkazu vytvořte relaci Book to Chapter určující následující vlastnosti.Hodnota relationshipchapterscardinalitymanydab update Book --relationship chapters --target.entity Chapter --cardinality manyNakonec spusťte
dab updatejednou naposledy, abyste vytvořili relaci Kapitola k knize , která určuje následující vlastnosti.Hodnota relationshipbookcardinalityonedab update Chapter --relationship book --target.entity Book --cardinality one
Spusťte více operací vytvoření mutace
Pro závěr použijte rozhraní příkazového řádku (CLI) DAB ke spuštění rozhraní API a otestování koncového bodu GraphQL pomocí Banana Cake Pop.
Spusťte modul runtime pomocí aktuální konfigurace.
dab startPřejděte na relativní koncový bod vaší běžící aplikace. Tento koncový bod otevře rozhraní Banana Cake Pop.
Poznámka:
Ve výchozím nastavení by to bylo
https://localhost:5001/graphql.Vytvořte GraphQL mutaci, která vytvoří tři různé řádky ve dvou tabulkách vaší databáze. Tato mutace používá entity
BookaChapterv jediné operaci "hromadného vytvoření". Pro mutaci použijte následující vlastnosti.Typ entita ID Název Stránky Rok Kniha 1 Úvod do Tvůrce rozhraní DATA API 200 2024 Kapitola 2 Konfigurační soubory sto padesát Kapitola 3 Běhání 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 } } } }Sledujte výstup mutace. Mutaci vytvořila související data pro oba typy entit.
{ "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 } ] } } } }Pomocí dotazu GraphQL můžete načíst všechny knihy v databázi včetně souvisejících kapitol.
query { books { items { pages title year chapters { items { name pages } } } } }Poznámka:
V tomto okamžiku by dotaz měl vrátit jednu knihu se dvěma kapitolami.
Prohlédněte si výstup tohoto dotazu s polem knih, které zahrnuje jejich vnořené pole kapitol.
{ "data": { "books": { "items": [ { "pages": 200, "title": "Introduction to Data API builder", "year": 2024, "chapters": { "items": [ { "name": "Configuration files", "pages": 150 }, { "name": "Running", "pages": 50 } ] } } ] } } }Znovu se připojte k databázi SQL pomocí preferovaného klienta nebo nástroje.
Ověřte, že se data úspěšně vytvořila pomocí dotazu 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_idPoznámka:
Tento dotaz by měl vrátit dva záznamy kapitol.