Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
O construtor de API de dados (DAB) suporta a combinação de várias operações de mutação em uma única transação. Várias mutações suportam 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
- Servidor SQL e banco de dados existentes.
- CLI do construtor de API de dados. Instalar a CLI
- Um cliente de base de dados (SQL Server Management Studio, etc.)
- Se 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 respetivos capítulos. Os livros têm uma relação um-para-muitos com os capítulos correspondentes.
Conecte-se ao banco de dados SQL usando seu cliente ou ferramenta preferido.
Crie uma tabela nomeada
Bookscomid,title,yearepagescolunas.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 umabook_idcoluna com uma relação de chave estrangeira com aidcoluna da 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 foram criadas com algumas consultas SQL comuns.
SELECT * FROM dbo.BooksSELECT * FROM dbo.ChaptersObservação
Neste ponto, as consultas não devem devolver quaisquer dados.
Compilar arquivo de configuração
Agora, use o CLI do DAB para criar um ficheiro de configuração, entidades e relações entre entidades.
Abra um terminal
Armazene sua 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 seguintes propriedades.Valor database-typemssqlgraphql.multiple-create.enabledtruehost-modedevelopmentconnection-stringUse a SQL_CONNECTION_STRINGvariável shell criada 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 seguintes propriedades.Valor sourcedbo.Bookspermissionsanonymous:*dab add Book --source "dbo.Books" --permissions "anonymous:*"Execute
dab addnovamente para adicionar uma entidade Chapter agora especificando as seguintes propriedades.Valor sourcedbo.Chapterspermissionsanonymous:*dab add Chapter --source "dbo.Chapters" --permissions "anonymous:*"Execute
dab updatepara criar a relação Livro a Capítulo especificando as seguintes propriedades.Valor relationshipchapterscardinalitymanydab update Book --relationship chapters --target.entity Chapter --cardinality manyFinalmente, execute
dab updateuma última vez para criar a relação Chapter to Book especificando as seguintes propriedades.Valor relationshipbookcardinalityonedab update Chapter --relationship book --target.entity Book --cardinality one
Executar múltiplas mutações de criação
Para concluir as coisas, use a CLI DAB para executar a API e testar o ponto de extremidade GraphQL usando o Banana Cake Pop.
Inicie o motor de execução usando a configuração atual.
dab startNavegue até o
/graphqlponto de extremidade relativo do seu aplicativo em execução. Este ponto de extremidade abre a interface do Banana Cake Pop.Observação
Por defeito, este ponto final 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 tanto as entidades
Bookcomo asChapternuma única operação de "criação múltipla". Empregue as seguintes propriedades 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 Corrida 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 livro único com dois capítulos.
Observe a saída desta 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 preferido.
Valide se seus 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.