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!

Utilizando graphQL em projetos .Net