Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O DAB (Construtor de API de Dados) dá suporte à combinação de várias operações de mutação em uma única transação. Várias mutações dão suporte a cenários em que você precisa criar vários itens pertencentes à mesma entidade ou criar vários itens pertencentes a uma entidade relacionada. Este guia percorre um cenário de exemplo usando uma operação de mutação múltipla.
Pré-requisitos
- SQL Server e banco de dados existentes.
- CLI do construtor de API de Dados. Instalar a CLI
- Um cliente de banco de dados (SQL Server Management Studio, etc.)
- Se você não tiver um cliente instalado, instale o SQL Server Management Studio.
Criar tabelas
Comece criando duas tabelas básicas para representar livros e seus respectivos capítulos. Os livros têm uma relação um-para-muitos com seus capítulos correspondentes.
Conecte-se ao banco de dados SQL usando seu cliente ou ferramenta preferencial.
Crie uma tabela nomeada
Bookscomid, ,titleyearepagescolunas.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 ) GOCrie outra tabela nomeada
Chapterscomid,nameepagescolunas. Crie uma colunabook_idcom uma relação de chave estrangeira para a colunaidda tabelaBooks.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) ) GOValide se suas tabelas são criadas com algumas consultas SQL comuns.
SELECT * FROM dbo.BooksSELECT * FROM dbo.ChaptersObservação
Neste ponto, as consultas não devem retornar dados.
Arquivo de configuração de build
Agora, use a CLI do DAB para criar um arquivo de configuração, entidades e relações de entidade.
Abra um terminal.
Armazene a cadeia de conexão do banco de dados SQL como uma variável de shell chamada
SQL_CONNECTION_STRING.SQL_CONNECTION_STRING="<your-sql-connection-string>"$SQL_CONNECTION_STRING="<your-sql-connection-string>"Execute
dab initespecificando as propriedades a seguir.Valor database-typemssqlgraphql.multiple-create.enabledtruehost-modedevelopmentconnection-stringUse a variável de shell SQL_CONNECTION_STRINGcriada na etapa anterior.dab init --database-type "mssql" --graphql.multiple-create.enabled true --host-mode "development" --connection-string $SQL_CONNECTION_STRINGExecute
dab addpara adicionar uma entidade book especificando as propriedades a seguir.Valor sourcedbo.Bookspermissionsanonymous:*dab add Book --source "dbo.Books" --permissions "anonymous:*"Execute
dab addnovamente para adicionar uma entidade chapter agora especificando as propriedades a seguir.Valor sourcedbo.Chapterspermissionsanonymous:*dab add Chapter --source "dbo.Chapters" --permissions "anonymous:*"Execute
dab updatepara criar a relação Livro a Capítulo especificando as propriedades a seguir.Valor relationshipchapterscardinalitymanydab update Book --relationship chapters --target.entity Chapter --cardinality manyPor fim, execute
dab updateuma última vez para criar a relação Capítulo a Livro especificando as propriedades a seguir.Valor relationshipbookcardinalityonedab update Chapter --relationship book --target.entity Book --cardinality one
Executar várias mutações de criação
Para concluir, use a CLI do DAB para executar a API e testar o ponto de extremidade do GraphQL usando Banana Cake Pop.
Inicie o mecanismo de runtime usando a configuração atual.
dab startNavegue até o
/graphqlponto de extremidade relativo do aplicativo em execução. Esse endpoint abre a interface Banana Cake Pop.Observação
Por padrão, isso seria
https://localhost:5001/graphql.Crie uma mutação graphQL para criar três linhas distintas em duas tabelas em seu banco de dados. Esta mutação usa as entidades
BookeChapterem uma única operação de "criação múltipla". Use as propriedades a seguir para a mutação.Tipo de entidade ID Nome Páginas Ano Livro 1 Introdução ao construtor de API de Dados 200 2024 Capítulo 2 Arquivos de configuração 150 Capítulo 3 Correndo 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 } } } }Observe a saída da mutação. A mutação criou dados relacionados para ambos os tipos de entidade.
{ "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 } ] } } } }Use uma consulta GraphQL para recuperar todos os livros em seu banco de dados, incluindo seus capítulos relacionados.
query { books { items { pages title year chapters { items { name pages } } } } }Observação
Neste ponto, a consulta deve retornar o único livro com dois capítulos.
Observe a saída dessa consulta com uma matriz de livros, incluindo sua matriz aninhada de capítulos.
{ "data": { "books": { "items": [ { "pages": 200, "title": "Introduction to Data API builder", "year": 2024, "chapters": { "items": [ { "name": "Configuration files", "pages": 150 }, { "name": "Running", "pages": 50 } ] } } ] } } }Conecte-se ao banco de dados SQL novamente usando seu cliente ou ferramenta preferencial.
Valide se os dados foram criados com êxito usando uma consulta 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_idObservação
Essa consulta deve retornar dois registros de capítulo.