SlideShare uma empresa Scribd logo
1 de 33
Construindo uma API
GraphQL com
ASP .NET Core e EF Core
Microsoft (MVP)
Thiago da Silva Adriano
Arquiteto de Software na TV Band
Autor Técnico e Palestrante
Organizador dos meetups
/perfil/thiagoadriano
programadrianotadriano.net
programadriano
programadriano
Contatos
Blogs
/pt-br/microsofttech/author/thiagoadriano/
Contatos
Agenda
▸ Introdução ao GraphQL
▸ Exemplo prático (.NET e EF)
Introdução ao GraphQL
Banco de dados relacional?
Banco de dados NoSQL?
Linguagem de programação?
GraphQL is an open-source data query and
manipulation language for APIs, and a runtime
for fulfilling queries with existing data. GraphQL
was developed internally by Facebook in 2012
before being publicly released in 2015
Wikipedia
GraphQL
Projetos frontend
restful api’s
RestFul Api’s - Problemas
● Tráfego de dados desnecessários
● Muitas rotas para atender todos os cenários (get news, get products...etc)
● Versionamento de API
Tráfego de dados desnecessários
8
Tráfego de dados desnecessários
Muitas rotas … etc
Versionamento de API’s
https://apieventos.band.uol.com.br/rolandgarros/v1/matches?date=2018-05-27&modality=SM&page=1&perPage=10
https://apieventos.band.uol.com.br/rolandgarros/v2/matches?date=2019-05-31&modality=SM&page=1&perPage=10
Exemplos Práticos
.NET Core + GraphQL
ASPNETCore2_CRUD-API-JWT-EFInMemory
Conceitos
● Schemas: Base de uma implementação GraphQL
● Types: Mapeamento entre as nossas Models (Modelos)
● Query: GET/GETByID
● Mutations: POST/PUT/DELETE
Model Type
mutation ($produto: produtoInput!) {
addProduto(produto: $produto) {
codigoBarras,
nome,
preco
}
}
Inserindo dados
{
"produto":{
"codigoBarras": "151333115321531s3",
"nome": "Produto novo",
"preco": 200.0
}
}
mutation ($produto: produtoInput!) {
updateProduto(produto: $produto) {
codigoBarras,
nome,
preco
}
}
Atualizando dados
{
"produto":{
"codigoBarras": "11111111111",
"nome": "Produto atualizado",
"preco": 200.0
}
}
mutation ($codigoBarras: ID!) {
deleteProduto(codigoBarras:
$codigoBarras)
}
Deletando dados
{
"codigoBarras": "11111111111"
}
.NET Core + GraphQL: https://github.com/programadriano/ASPNETCore2_CRUD-API-JWT-EFInMemory-GraphQL
Obrigado
@programadriano

Mais conteúdo relacionado

Mais procurados

JavaScript na nuvem node + angular + microsoft azure
JavaScript na nuvem  node + angular + microsoft azureJavaScript na nuvem  node + angular + microsoft azure
JavaScript na nuvem node + angular + microsoft azureMVP Microsoft
 
Da Exploração à Produção - Inteligência Artificial com a plataforma Marvin
Da Exploração à Produção - Inteligência Artificial com a plataforma MarvinDa Exploração à Produção - Inteligência Artificial com a plataforma Marvin
Da Exploração à Produção - Inteligência Artificial com a plataforma MarvinDaniel Takabayashi, MSc
 
A aventura de um Agile Tester em uma empresa Waterfall Portuguesa
A aventura de um Agile Tester em uma empresa Waterfall PortuguesaA aventura de um Agile Tester em uma empresa Waterfall Portuguesa
A aventura de um Agile Tester em uma empresa Waterfall PortuguesaRobson Agapito Correa
 
Testes em uma arquitetura com messageria/streaming (Kafka)
Testes em uma arquitetura com messageria/streaming (Kafka)Testes em uma arquitetura com messageria/streaming (Kafka)
Testes em uma arquitetura com messageria/streaming (Kafka)Robson Agapito Correa
 
Python com qualidade - testes funcionais com Python e Selenium Webdriver
Python com qualidade - testes funcionais com Python e Selenium WebdriverPython com qualidade - testes funcionais com Python e Selenium Webdriver
Python com qualidade - testes funcionais com Python e Selenium WebdriverRobson Agapito Correa
 
Decoupled Drupal com GraphQL e React
Decoupled Drupal com GraphQL e ReactDecoupled Drupal com GraphQL e React
Decoupled Drupal com GraphQL e ReactCleber Gasparoto
 
GraphQL e WordPress, uma bonita união
GraphQL e WordPress, uma bonita uniãoGraphQL e WordPress, uma bonita união
GraphQL e WordPress, uma bonita uniãoLeo Baiano
 
Machine Learning para devs com ML.NET
Machine Learning para devs com ML.NETMachine Learning para devs com ML.NET
Machine Learning para devs com ML.NETLetticia Nicoli
 

Mais procurados (8)

JavaScript na nuvem node + angular + microsoft azure
JavaScript na nuvem  node + angular + microsoft azureJavaScript na nuvem  node + angular + microsoft azure
JavaScript na nuvem node + angular + microsoft azure
 
Da Exploração à Produção - Inteligência Artificial com a plataforma Marvin
Da Exploração à Produção - Inteligência Artificial com a plataforma MarvinDa Exploração à Produção - Inteligência Artificial com a plataforma Marvin
Da Exploração à Produção - Inteligência Artificial com a plataforma Marvin
 
A aventura de um Agile Tester em uma empresa Waterfall Portuguesa
A aventura de um Agile Tester em uma empresa Waterfall PortuguesaA aventura de um Agile Tester em uma empresa Waterfall Portuguesa
A aventura de um Agile Tester em uma empresa Waterfall Portuguesa
 
Testes em uma arquitetura com messageria/streaming (Kafka)
Testes em uma arquitetura com messageria/streaming (Kafka)Testes em uma arquitetura com messageria/streaming (Kafka)
Testes em uma arquitetura com messageria/streaming (Kafka)
 
Python com qualidade - testes funcionais com Python e Selenium Webdriver
Python com qualidade - testes funcionais com Python e Selenium WebdriverPython com qualidade - testes funcionais com Python e Selenium Webdriver
Python com qualidade - testes funcionais com Python e Selenium Webdriver
 
Decoupled Drupal com GraphQL e React
Decoupled Drupal com GraphQL e ReactDecoupled Drupal com GraphQL e React
Decoupled Drupal com GraphQL e React
 
GraphQL e WordPress, uma bonita união
GraphQL e WordPress, uma bonita uniãoGraphQL e WordPress, uma bonita união
GraphQL e WordPress, uma bonita união
 
Machine Learning para devs com ML.NET
Machine Learning para devs com ML.NETMachine Learning para devs com ML.NET
Machine Learning para devs com ML.NET
 

Semelhante a GraphQL com .NET Core

Utilizando graphQL em projetos .Net
Utilizando graphQL em projetos .NetUtilizando graphQL em projetos .Net
Utilizando graphQL em projetos .NetMVP Microsoft
 
Campus Party - Desenvolvendo aplicações .Net com software gratuito
Campus Party  - Desenvolvendo aplicações .Net com software gratuitoCampus Party  - Desenvolvendo aplicações .Net com software gratuito
Campus Party - Desenvolvendo aplicações .Net com software gratuitoAlexandre Tarifa
 
Introdução ao GraphQL - Uma nova forma de criar APIs
Introdução ao GraphQL - Uma nova forma de criar APIsIntrodução ao GraphQL - Uma nova forma de criar APIs
Introdução ao GraphQL - Uma nova forma de criar APIsFernando Henriques
 
Desenvolvendo para web ASP.Net (Overview para iniciantes)
Desenvolvendo para web ASP.Net (Overview para iniciantes)Desenvolvendo para web ASP.Net (Overview para iniciantes)
Desenvolvendo para web ASP.Net (Overview para iniciantes)Fernando Gonçalves
 
GraphQL na GetNinjas (2017-09-20)
GraphQL na GetNinjas (2017-09-20)GraphQL na GetNinjas (2017-09-20)
GraphQL na GetNinjas (2017-09-20)Bruno Soares
 
Introdução ao GraphQL - Uma nova forma de criar APIs (Ruby)
Introdução ao GraphQL - Uma nova forma de criar APIs (Ruby)Introdução ao GraphQL - Uma nova forma de criar APIs (Ruby)
Introdução ao GraphQL - Uma nova forma de criar APIs (Ruby)Fernando Henriques
 
Azure para Desenvolvedores - Azure Brasil - Março-2018
Azure para Desenvolvedores - Azure Brasil - Março-2018Azure para Desenvolvedores - Azure Brasil - Março-2018
Azure para Desenvolvedores - Azure Brasil - Março-2018Renato Groff
 
Ruby on Rails e o Mercado
Ruby on Rails e o MercadoRuby on Rails e o Mercado
Ruby on Rails e o MercadoJulio Monteiro
 
SimulaRSO - Simulador de Recursos de Sistemas Operacionais
SimulaRSO - Simulador de Recursos de Sistemas OperacionaisSimulaRSO - Simulador de Recursos de Sistemas Operacionais
SimulaRSO - Simulador de Recursos de Sistemas OperacionaisCaio Ribeiro Pereira
 
Desenvolvendo Aplicações com .NET Core - Recode - Dezembro-2019
Desenvolvendo Aplicações com .NET Core - Recode - Dezembro-2019Desenvolvendo Aplicações com .NET Core - Recode - Dezembro-2019
Desenvolvendo Aplicações com .NET Core - Recode - Dezembro-2019Renato Groff
 
php4android: desenvolva aplicações android em PHP
php4android: desenvolva aplicações android em PHPphp4android: desenvolva aplicações android em PHP
php4android: desenvolva aplicações android em PHPRamon Ribeiro Rabello
 
Boas práticas na implementação de APIs REST com ASP.NET Core - Agosto-2019
Boas práticas na implementação de APIs REST com ASP.NET Core - Agosto-2019Boas práticas na implementação de APIs REST com ASP.NET Core - Agosto-2019
Boas práticas na implementação de APIs REST com ASP.NET Core - Agosto-2019Renato Groff
 
Desenvolvendo Aplicações .NET Core em Linux - CEUNSP - Outubro-2019
Desenvolvendo Aplicações .NET Core em Linux - CEUNSP - Outubro-2019Desenvolvendo Aplicações .NET Core em Linux - CEUNSP - Outubro-2019
Desenvolvendo Aplicações .NET Core em Linux - CEUNSP - Outubro-2019Renato Groff
 
T@rget trust linq - language integrated query
T@rget trust   linq - language integrated queryT@rget trust   linq - language integrated query
T@rget trust linq - language integrated queryTargettrust
 
Microsoft Edge (Teched 2015)
Microsoft Edge (Teched 2015)Microsoft Edge (Teched 2015)
Microsoft Edge (Teched 2015)Fabrício Catae
 
Conhecendo a Plataforma .NET
Conhecendo a Plataforma .NETConhecendo a Plataforma .NET
Conhecendo a Plataforma .NETPedro Alves Jr.
 
Bancos de dados no Azure: conhecendo as opções relacionais e NoSQL disponívei...
Bancos de dados no Azure: conhecendo as opções relacionais e NoSQL disponívei...Bancos de dados no Azure: conhecendo as opções relacionais e NoSQL disponívei...
Bancos de dados no Azure: conhecendo as opções relacionais e NoSQL disponívei...Renato Groff
 

Semelhante a GraphQL com .NET Core (20)

Utilizando graphQL em projetos .Net
Utilizando graphQL em projetos .NetUtilizando graphQL em projetos .Net
Utilizando graphQL em projetos .Net
 
Campus Party - Desenvolvendo aplicações .Net com software gratuito
Campus Party  - Desenvolvendo aplicações .Net com software gratuitoCampus Party  - Desenvolvendo aplicações .Net com software gratuito
Campus Party - Desenvolvendo aplicações .Net com software gratuito
 
Introdução ao GraphQL - Uma nova forma de criar APIs
Introdução ao GraphQL - Uma nova forma de criar APIsIntrodução ao GraphQL - Uma nova forma de criar APIs
Introdução ao GraphQL - Uma nova forma de criar APIs
 
Desenvolvendo para web ASP.Net (Overview para iniciantes)
Desenvolvendo para web ASP.Net (Overview para iniciantes)Desenvolvendo para web ASP.Net (Overview para iniciantes)
Desenvolvendo para web ASP.Net (Overview para iniciantes)
 
GraphQL na GetNinjas (2017-09-20)
GraphQL na GetNinjas (2017-09-20)GraphQL na GetNinjas (2017-09-20)
GraphQL na GetNinjas (2017-09-20)
 
Iniciando com ASP.NET
Iniciando com ASP.NETIniciando com ASP.NET
Iniciando com ASP.NET
 
Introdução ao GraphQL - Uma nova forma de criar APIs (Ruby)
Introdução ao GraphQL - Uma nova forma de criar APIs (Ruby)Introdução ao GraphQL - Uma nova forma de criar APIs (Ruby)
Introdução ao GraphQL - Uma nova forma de criar APIs (Ruby)
 
Azure para Desenvolvedores - Azure Brasil - Março-2018
Azure para Desenvolvedores - Azure Brasil - Março-2018Azure para Desenvolvedores - Azure Brasil - Março-2018
Azure para Desenvolvedores - Azure Brasil - Março-2018
 
Ruby on Rails e o Mercado
Ruby on Rails e o MercadoRuby on Rails e o Mercado
Ruby on Rails e o Mercado
 
SimulaRSO - Simulador de Recursos de Sistemas Operacionais
SimulaRSO - Simulador de Recursos de Sistemas OperacionaisSimulaRSO - Simulador de Recursos de Sistemas Operacionais
SimulaRSO - Simulador de Recursos de Sistemas Operacionais
 
Desenvolvendo Aplicações com .NET Core - Recode - Dezembro-2019
Desenvolvendo Aplicações com .NET Core - Recode - Dezembro-2019Desenvolvendo Aplicações com .NET Core - Recode - Dezembro-2019
Desenvolvendo Aplicações com .NET Core - Recode - Dezembro-2019
 
php4android: desenvolva aplicações android em PHP
php4android: desenvolva aplicações android em PHPphp4android: desenvolva aplicações android em PHP
php4android: desenvolva aplicações android em PHP
 
Boas práticas na implementação de APIs REST com ASP.NET Core - Agosto-2019
Boas práticas na implementação de APIs REST com ASP.NET Core - Agosto-2019Boas práticas na implementação de APIs REST com ASP.NET Core - Agosto-2019
Boas práticas na implementação de APIs REST com ASP.NET Core - Agosto-2019
 
Desenvolvendo Aplicações .NET Core em Linux - CEUNSP - Outubro-2019
Desenvolvendo Aplicações .NET Core em Linux - CEUNSP - Outubro-2019Desenvolvendo Aplicações .NET Core em Linux - CEUNSP - Outubro-2019
Desenvolvendo Aplicações .NET Core em Linux - CEUNSP - Outubro-2019
 
T@rget trust linq - language integrated query
T@rget trust   linq - language integrated queryT@rget trust   linq - language integrated query
T@rget trust linq - language integrated query
 
Microsoft Edge (Teched 2015)
Microsoft Edge (Teched 2015)Microsoft Edge (Teched 2015)
Microsoft Edge (Teched 2015)
 
Apresentação de projeto de estágio
Apresentação de projeto de estágioApresentação de projeto de estágio
Apresentação de projeto de estágio
 
Conhecendo a Plataforma .NET
Conhecendo a Plataforma .NETConhecendo a Plataforma .NET
Conhecendo a Plataforma .NET
 
Bancos de dados no Azure: conhecendo as opções relacionais e NoSQL disponívei...
Bancos de dados no Azure: conhecendo as opções relacionais e NoSQL disponívei...Bancos de dados no Azure: conhecendo as opções relacionais e NoSQL disponívei...
Bancos de dados no Azure: conhecendo as opções relacionais e NoSQL disponívei...
 
ASP.NET 5, MVC 6 e além
ASP.NET 5, MVC 6 e alémASP.NET 5, MVC 6 e além
ASP.NET 5, MVC 6 e além
 

Mais de MVP Microsoft

TypeScript + Node.js + cosmos db
TypeScript + Node.js + cosmos dbTypeScript + Node.js + cosmos db
TypeScript + Node.js + cosmos dbMVP Microsoft
 
Desenvolvimento de games com C# e Unity
Desenvolvimento de games com C# e UnityDesenvolvimento de games com C# e Unity
Desenvolvimento de games com C# e UnityMVP Microsoft
 
Novidades do TypeScript para desenvolvedores Angular
Novidades do TypeScript para desenvolvedores AngularNovidades do TypeScript para desenvolvedores Angular
Novidades do TypeScript para desenvolvedores AngularMVP Microsoft
 
Desenvolvendo games de realidade virtual com C# utilizando o Unity
Desenvolvendo games de realidade virtual com C# utilizando o UnityDesenvolvendo games de realidade virtual com C# utilizando o Unity
Desenvolvendo games de realidade virtual com C# utilizando o UnityMVP Microsoft
 
Angular + asp.net core + docker na nuvem
Angular + asp.net core + docker na nuvem Angular + asp.net core + docker na nuvem
Angular + asp.net core + docker na nuvem MVP Microsoft
 
Vs code + node + angular + azure app service
Vs code + node + angular + azure app serviceVs code + node + angular + azure app service
Vs code + node + angular + azure app serviceMVP Microsoft
 
Erros e acertos com angular na tv bandeirantes
Erros e acertos com angular na tv bandeirantesErros e acertos com angular na tv bandeirantes
Erros e acertos com angular na tv bandeirantesMVP Microsoft
 
Fc nuvem azure node, mongo db, redis e docker
Fc nuvem azure  node, mongo db, redis e dockerFc nuvem azure  node, mongo db, redis e docker
Fc nuvem azure node, mongo db, redis e dockerMVP Microsoft
 
Bots no mundo real o case da tv bandeirantes
Bots no mundo real  o case da tv bandeirantesBots no mundo real  o case da tv bandeirantes
Bots no mundo real o case da tv bandeirantesMVP Microsoft
 
Angular lazy loading
Angular  lazy loadingAngular  lazy loading
Angular lazy loadingMVP Microsoft
 
Criando games em c# utilizando o unity
Criando games em c# utilizando o unity Criando games em c# utilizando o unity
Criando games em c# utilizando o unity MVP Microsoft
 
Angular SSR com .NET Core no Azure
Angular SSR com .NET Core no AzureAngular SSR com .NET Core no Azure
Angular SSR com .NET Core no AzureMVP Microsoft
 
Angular + jwt + .net core
Angular + jwt + .net core Angular + jwt + .net core
Angular + jwt + .net core MVP Microsoft
 

Mais de MVP Microsoft (20)

Resiliencia em APIs
Resiliencia em APIsResiliencia em APIs
Resiliencia em APIs
 
TypeScript + Node.js + cosmos db
TypeScript + Node.js + cosmos dbTypeScript + Node.js + cosmos db
TypeScript + Node.js + cosmos db
 
Desenvolvimento de games com C# e Unity
Desenvolvimento de games com C# e UnityDesenvolvimento de games com C# e Unity
Desenvolvimento de games com C# e Unity
 
Novidades do TypeScript para desenvolvedores Angular
Novidades do TypeScript para desenvolvedores AngularNovidades do TypeScript para desenvolvedores Angular
Novidades do TypeScript para desenvolvedores Angular
 
7 masters
7 masters7 masters
7 masters
 
TypeScript 3.4
TypeScript 3.4 TypeScript 3.4
TypeScript 3.4
 
Xamarim + api
Xamarim + apiXamarim + api
Xamarim + api
 
Desenvolvendo games de realidade virtual com C# utilizando o Unity
Desenvolvendo games de realidade virtual com C# utilizando o UnityDesenvolvendo games de realidade virtual com C# utilizando o Unity
Desenvolvendo games de realidade virtual com C# utilizando o Unity
 
Angular + asp.net core + docker na nuvem
Angular + asp.net core + docker na nuvem Angular + asp.net core + docker na nuvem
Angular + asp.net core + docker na nuvem
 
Vs code + node + angular + azure app service
Vs code + node + angular + azure app serviceVs code + node + angular + azure app service
Vs code + node + angular + azure app service
 
Xamarin + node.js
Xamarin + node.jsXamarin + node.js
Xamarin + node.js
 
Erros e acertos com angular na tv bandeirantes
Erros e acertos com angular na tv bandeirantesErros e acertos com angular na tv bandeirantes
Erros e acertos com angular na tv bandeirantes
 
Ai fest 2018
Ai fest 2018Ai fest 2018
Ai fest 2018
 
Fc nuvem azure node, mongo db, redis e docker
Fc nuvem azure  node, mongo db, redis e dockerFc nuvem azure  node, mongo db, redis e docker
Fc nuvem azure node, mongo db, redis e docker
 
Bots no mundo real o case da tv bandeirantes
Bots no mundo real  o case da tv bandeirantesBots no mundo real  o case da tv bandeirantes
Bots no mundo real o case da tv bandeirantes
 
Angular lazy loading
Angular  lazy loadingAngular  lazy loading
Angular lazy loading
 
Criando games em c# utilizando o unity
Criando games em c# utilizando o unity Criando games em c# utilizando o unity
Criando games em c# utilizando o unity
 
Angular SSR com .NET Core no Azure
Angular SSR com .NET Core no AzureAngular SSR com .NET Core no Azure
Angular SSR com .NET Core no Azure
 
Angular + jwt + .net core
Angular + jwt + .net core Angular + jwt + .net core
Angular + jwt + .net core
 
Elasticsearch
ElasticsearchElasticsearch
Elasticsearch
 

GraphQL com .NET Core