SlideShare uma empresa Scribd logo
1 de 48
Utilizando GraphQL em projetos .NET
Microsoft Most Valuable Professional (MVP)
Arquiteto de Software na TV Bandeirantes
Autor Técnico e Palestrante
Um dos organizadores do .NET SP
Thiago da Silva Adriano
Agenda
▸ Introdução ao GraphQL
▸ Exemplo prático
Aplicações atuais
RESTFul API
▸ Tráfego de dados desnecessários
▸ Muitas rotas para atender todos os cenários (Desktop,Mobile,Smart Tv …)
▸ Versionamento de API
Tráfego desnecessário
API - Retorno de próximas partidas
API - Retorno de próximas partidas
API - Retorno de próximas partidas
API - Retorno partidas
API - Retorno partidas
API - Chamada de resultados
Muitas rotas ...
Muitas rotas para atender demandas
▸ Criando uma rota nova para cada device: Smart Tvs, Mobile, Site … etc
▸ Adicionando um novo parâmetro (...?...&smart=true&tags=datena,neto...)
Muitas rotas para atender demandas
Versionamento de API’s
Versionamento de API’s
O que é o GraphQL?
Banco de dados relacional?
Banco de dados relacional?
Banco de dados NOSQL?
Banco de dados NOSQL?
Lingagem de programação?
...
Lingagem de programação?
...
GraphQL
GraphQL is a query language for your API,
and a server-side runtime for executing
queries by using a type system you define for
your data. GraphQL isn't tied to any specific
database or storage engine and is instead
backed by your existing code and data.
http://graphql.org
GraphQL
https://graphql.org/learn/queries/
GraphQL
Exemplo prático
GraphQL
REST API GraphQL API
API
/Campeonato /Ranking
API
/Partidas
/Campeonato /Ranking/Partidas
Exemplo prático
docker pull microsoft/mssql-server-linux
docker run -e 'ACCEPT_EULA=Y' -e
'SA_PASSWORD=yourStrong(!)Password' -p 1433:1433 -d microsoft/mssql-
server-linux:2017-latest
Exemplo prático
Exemplo prático
Zé em açãoEstrutura do projeto
https://github.com/programadriano/GraphQL-dotnetcore
https://gist.github.com/programadriano/4d573ac7641501b093475246f66d9916
Exemplo 01 (retornando tudo)
Exemplo 02 (Próximo jogos)
Exemplo 03 (Paginação)
● Página (página atual)
● Quantidade (que deve retornar)
Exemplo prático
Exemplo 01:
https://gist.github.com/programadriano/c4be5132fe5fd3432bf67378db21b461
Exemplo 02:
https://gist.github.com/programadriano/560ee3aefad475ad553b0578e90d993b
Contatos
/tadriano-net @programadriano
@programadriano /perfil/thiagoadriano/
@programadriano tadriano.net@gmail.com
https://medium.com/@programadriano
Zé em açãoEstrutura do projetoDúvidas??
obrigado!

Mais conteúdo relacionado

Semelhante a Utilizando graphQL em projetos .Net

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
 
TDC2018FLN | Trilha Arquitetura - Architecting for Resilience
TDC2018FLN | Trilha Arquitetura - Architecting for ResilienceTDC2018FLN | Trilha Arquitetura - Architecting for Resilience
TDC2018FLN | Trilha Arquitetura - Architecting for Resiliencetdc-globalcode
 
Architecting For Resilience
Architecting For ResilienceArchitecting For Resilience
Architecting For ResilienceFabiano Modos
 
Nuvens com Ênfase em Azure - Locatech + Locaneers - Abril-2019
Nuvens com Ênfase em Azure - Locatech + Locaneers - Abril-2019Nuvens com Ênfase em Azure - Locatech + Locaneers - Abril-2019
Nuvens com Ênfase em Azure - Locatech + Locaneers - Abril-2019Renato Groff
 
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
 
Microsoft e Open Source: expandindo as fronteiras no Desenvolvimento de Softw...
Microsoft e Open Source: expandindo as fronteiras no Desenvolvimento de Softw...Microsoft e Open Source: expandindo as fronteiras no Desenvolvimento de Softw...
Microsoft e Open Source: expandindo as fronteiras no Desenvolvimento de Softw...Renato Groff
 
Compatibilidade de aplicacoes evento super downloads - windows 7
Compatibilidade de aplicacoes   evento super downloads - windows 7Compatibilidade de aplicacoes   evento super downloads - windows 7
Compatibilidade de aplicacoes evento super downloads - windows 7Fabio Hara
 
10 dicas úteis para simplificar o desenvolvimento em ASP.NET Core - ASP.NET C...
10 dicas úteis para simplificar o desenvolvimento em ASP.NET Core - ASP.NET C...10 dicas úteis para simplificar o desenvolvimento em ASP.NET Core - ASP.NET C...
10 dicas úteis para simplificar o desenvolvimento em ASP.NET Core - ASP.NET C...Renato Groff
 
Como o Microsoft Azure pode melhorar o desenvolvimento de seu Back-End? | Dev...
Como o Microsoft Azure pode melhorar o desenvolvimento de seu Back-End? | Dev...Como o Microsoft Azure pode melhorar o desenvolvimento de seu Back-End? | Dev...
Como o Microsoft Azure pode melhorar o desenvolvimento de seu Back-End? | Dev...Renato Groff
 
Rails Summit 2008 - Web Operations - George Guimarães - Pagestacker
Rails Summit 2008 - Web Operations - George Guimarães - PagestackerRails Summit 2008 - Web Operations - George Guimarães - Pagestacker
Rails Summit 2008 - Web Operations - George Guimarães - PagestackerGeorge Guimarães
 
Arquitetura Serverless para Machine Learning
Arquitetura Serverless para Machine LearningArquitetura Serverless para Machine Learning
Arquitetura Serverless para Machine LearningFelipe Santos
 
Microsoft Azure para Desenvolvedores Web - Azure para Devs e DBAs - Maio-2018
Microsoft Azure para Desenvolvedores Web - Azure para Devs e DBAs - Maio-2018Microsoft Azure para Desenvolvedores Web - Azure para Devs e DBAs - Maio-2018
Microsoft Azure para Desenvolvedores Web - Azure para Devs e DBAs - Maio-2018Renato Groff
 
Latinoware 2019 - DEsenvolvimento mobile em Nivel jedi
Latinoware 2019 - DEsenvolvimento mobile em Nivel jediLatinoware 2019 - DEsenvolvimento mobile em Nivel jedi
Latinoware 2019 - DEsenvolvimento mobile em Nivel jediAlessandro Binhara
 
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
 
GraphQL - aposta ou retrocesso?
GraphQL - aposta ou retrocesso?GraphQL - aposta ou retrocesso?
GraphQL - aposta ou retrocesso?Wender Machado
 
Monitoramento em tempo real (DEVDAY2015)
Monitoramento em tempo real (DEVDAY2015)Monitoramento em tempo real (DEVDAY2015)
Monitoramento em tempo real (DEVDAY2015)Marcus Lacerda
 

Semelhante a Utilizando graphQL em projetos .Net (20)

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
 
TDC2018FLN | Trilha Arquitetura - Architecting for Resilience
TDC2018FLN | Trilha Arquitetura - Architecting for ResilienceTDC2018FLN | Trilha Arquitetura - Architecting for Resilience
TDC2018FLN | Trilha Arquitetura - Architecting for Resilience
 
Architecting For Resilience
Architecting For ResilienceArchitecting For Resilience
Architecting For Resilience
 
Nuvens com Ênfase em Azure - Locatech + Locaneers - Abril-2019
Nuvens com Ênfase em Azure - Locatech + Locaneers - Abril-2019Nuvens com Ênfase em Azure - Locatech + Locaneers - Abril-2019
Nuvens com Ênfase em Azure - Locatech + Locaneers - Abril-2019
 
GraphQL na GetNinjas (2017-09-20)
GraphQL na GetNinjas (2017-09-20)GraphQL na GetNinjas (2017-09-20)
GraphQL na GetNinjas (2017-09-20)
 
Microsoft e Open Source: expandindo as fronteiras no Desenvolvimento de Softw...
Microsoft e Open Source: expandindo as fronteiras no Desenvolvimento de Softw...Microsoft e Open Source: expandindo as fronteiras no Desenvolvimento de Softw...
Microsoft e Open Source: expandindo as fronteiras no Desenvolvimento de Softw...
 
Compatibilidade de aplicacoes evento super downloads - windows 7
Compatibilidade de aplicacoes   evento super downloads - windows 7Compatibilidade de aplicacoes   evento super downloads - windows 7
Compatibilidade de aplicacoes evento super downloads - windows 7
 
10 dicas úteis para simplificar o desenvolvimento em ASP.NET Core - ASP.NET C...
10 dicas úteis para simplificar o desenvolvimento em ASP.NET Core - ASP.NET C...10 dicas úteis para simplificar o desenvolvimento em ASP.NET Core - ASP.NET C...
10 dicas úteis para simplificar o desenvolvimento em ASP.NET Core - ASP.NET C...
 
Como o Microsoft Azure pode melhorar o desenvolvimento de seu Back-End? | Dev...
Como o Microsoft Azure pode melhorar o desenvolvimento de seu Back-End? | Dev...Como o Microsoft Azure pode melhorar o desenvolvimento de seu Back-End? | Dev...
Como o Microsoft Azure pode melhorar o desenvolvimento de seu Back-End? | Dev...
 
Rails Summit 2008 - Web Operations - George Guimarães - Pagestacker
Rails Summit 2008 - Web Operations - George Guimarães - PagestackerRails Summit 2008 - Web Operations - George Guimarães - Pagestacker
Rails Summit 2008 - Web Operations - George Guimarães - Pagestacker
 
Marco Vasconcelos CV
Marco Vasconcelos CVMarco Vasconcelos CV
Marco Vasconcelos CV
 
Arquitetura Serverless para Machine Learning
Arquitetura Serverless para Machine LearningArquitetura Serverless para Machine Learning
Arquitetura Serverless para Machine Learning
 
Microsoft Azure para Desenvolvedores Web - Azure para Devs e DBAs - Maio-2018
Microsoft Azure para Desenvolvedores Web - Azure para Devs e DBAs - Maio-2018Microsoft Azure para Desenvolvedores Web - Azure para Devs e DBAs - Maio-2018
Microsoft Azure para Desenvolvedores Web - Azure para Devs e DBAs - Maio-2018
 
Latinoware 2019 - DEsenvolvimento mobile em Nivel jedi
Latinoware 2019 - DEsenvolvimento mobile em Nivel jediLatinoware 2019 - DEsenvolvimento mobile em Nivel jedi
Latinoware 2019 - DEsenvolvimento mobile em Nivel jedi
 
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
 
GraphQL - aposta ou retrocesso?
GraphQL - aposta ou retrocesso?GraphQL - aposta ou retrocesso?
GraphQL - aposta ou retrocesso?
 
Principais Tecnologias Web
Principais Tecnologias WebPrincipais Tecnologias Web
Principais Tecnologias Web
 
Principais Tecnologias WEB
Principais Tecnologias WEBPrincipais Tecnologias WEB
Principais Tecnologias WEB
 
Principais Tecnologias WEB
Principais Tecnologias WEBPrincipais Tecnologias WEB
Principais Tecnologias WEB
 
Monitoramento em tempo real (DEVDAY2015)
Monitoramento em tempo real (DEVDAY2015)Monitoramento em tempo real (DEVDAY2015)
Monitoramento em tempo real (DEVDAY2015)
 

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
Novidades do TypeScript Novidades do TypeScript
Novidades do TypeScript MVP 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
 
Mackenzie - TypeScript
Mackenzie - TypeScript Mackenzie - TypeScript
Mackenzie - TypeScript MVP Microsoft
 
Typescript no fronte no back com Docker
Typescript no fronte no back com DockerTypescript no fronte no back com Docker
Typescript no fronte no back com DockerMVP 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
 
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
 
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
 
TypeScript no Back-end e no Front-end
TypeScript no Back-end e no Front-endTypeScript no Back-end e no Front-end
TypeScript no Back-end e no Front-endMVP 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
 

Mais de MVP Microsoft (20)

Resiliencia em APIs
Resiliencia em APIsResiliencia em APIs
Resiliencia em APIs
 
Tdc 2020 Floripa
Tdc 2020 FloripaTdc 2020 Floripa
Tdc 2020 Floripa
 
Angular DevOps
Angular DevOpsAngular DevOps
Angular DevOps
 
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
Novidades do TypeScript Novidades do TypeScript
Novidades do TypeScript
 
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
 
Mackenzie - TypeScript
Mackenzie - TypeScript Mackenzie - TypeScript
Mackenzie - TypeScript
 
Typescript no fronte no back com Docker
Typescript no fronte no back com DockerTypescript no fronte no back com Docker
Typescript no fronte no back com Docker
 
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
 
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
 
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
 
TypeScript no Back-end e no Front-end
TypeScript no Back-end e no Front-endTypeScript no Back-end e no Front-end
TypeScript no Back-end e no Front-end
 
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
 

Utilizando graphQL em projetos .Net