Com o GraphQL e Apollo Server + Apollo Client, você pode criar os servidores de back-end das suas aplicações (mobile ou web), mesmo que já tenha configurado alguma API REST, ou que tenha seus dados diretamente em uma base de dados qualquer.
O Apollo Server será usado no back-end e o Apollo Client no front-end.
Caso tenha dúvidas sobre back-end e front-end:
- Back-end é o nosso servidor. Onde salvamos informações em bases de dados, respondemos por requisições, geramos tokens de autenticação para logar o usuário e mais. Geralmente, essa é a parte que o usuário da sua aplicação não vê, mas interage com ela através do front-end. Aqui que mora o Apollo Server.
- Front-end é a parte que o usuário vê e usa para interagir com o nosso back-end. Poderia ser uma aplicação mobile, um site ou até um terminal. Contando que ele consiga enviar requisições para o nosso servidor, então podemos considerar essa aplicação um front-end. Vamos utilizar o React e o Apollo Client para o nosso front-end.
O GraphQL utiliza o conceito de grafos para facilitar a navegação entre os dados da sua aplicação.
O próprio nome “GraphQL”, também descreve o que ele é, e faz: Graph, significa grafo (geralmente traduzido como “gráfico” no português, mas é grafo mesmo, da matemática); Q.L. seria para as iniciais de “Query Language” (linguagem de consulta).
Juntando tudo Graph Query Language. Traduzindo de forma literal, temos “Linguagem de consulta de grafos”.
A função primordial do GraphQL é facilitar a busca de dados, sejam eles simples ou complexos. Aqui ele vai brilhar de formas que você nunca imaginou caso tenha costume com API REST tradicional.
Nós conseguiremos solicitar quais campos queremos de cada um dos servidores e receberemos exatamente o que pedimos, nenhum campo a mais ou a menos.
Vamos falar sobre isso no decorrer do curso, no entanto, em se tratando de “linguagem de consulta”, ele vai resolver um grande problema que temos nas API RESTs desde sempre: o over-fetching (buscar mais dados do que precisamos, forçando o front-end a consumir mais dados de rede sem necessidade) e/ou under-fetching (buscar menos dados do que precisamos, forçando o front-end a ter que fazer outra solicitação para a API para completar a informação).
Como eu disse, nós vamos falar MUITO sobre isso ao longo das aulas.
Além da linguagem de consulta – que é algo parecido com SQL, porém mais robusto – o GraphQL vai te dar a possibilidade de conectar vários serviços ou servidores diferentes na mesma aplicação.
Com isso você poderá promover a união de todos os dados de uma (ou várias) empresa(s) em um único end-point como um único objeto final.
Já pensou que lindo? Uma requisição; Todos os dados que eu pedi (sem mais, nem menos); Em forma de objeto! Nem precisa, é exatamente isso que o GraphQL promove – E faz com excelência.
Você poderia ter dados no MongoDB, em um arquivo JSON no seu computador, em outro servidor MySQL e uma API REST que havia criado anteriormente.
Não importa de onde os dados vão vir, você consegue unir tudo dentro de um único grafo e entregar para o front-end como se eles viessem sempre do mesmo local.
Isso não é exagero, nós vamos fazer algo similar neste curso.
Mas e o Apollo-Server (back-end)?
Apesar de falarmos do GraphQL como uma “nova linguagem de programação”, NÃO É! Como eu mencionei antes, a única parte de “linguagem” que temos no GraphQL, são partes relacionadas com a consulta. Isso envolve coisas como:
A tipagem dos dados da sua aplicação
- As definições de diretivas e configurações
- As consultas, que é quando precisamos ler (read) dados dos servidores (famosa Query)
- As mutações, que é quando precisamos fazer qualquer mudança (create, update, delete) de dados dos servidores (Mutation)
- E as subscrições que é onde vamos permitir que usuários abram uma conexão continua com nosso servidor, usando WebSockets, para enviarmos notificações sem que ele tenha que solicitar qualquer informação (Subscriptions).
Essas duas palavras que falei antes (Query e Mutation) formam o nosso “CRUD”. Nós podemos criar, ler, atualizar e apagar dados de qualquer um dos nossos servidores.
As subscrições são mais voltadas para conexões que não desconectam, como em aplicações de chat online, por exemplo.
A linguagem de consulta do GraphQL vai apenas “descrever” o que devemos fazer, o restante será feito pela linguagem de programação que escolhermos usar.
E por falar nisso, você pode usar GraphQL com várias linguagens de programação diferentes, como: PHP com graphql-php, Scala com Sangria, Python com Graphene, Ruby com o graphql-ruby, JavaScript e TypeScript com uma quantidade enorme de clientes (para front-end) e servidores (para back-end).
Como neste curso vamos usar JavaScript, decidi optar pelo servidor que a comunidade do JS usa mais ultimamente, o Apollo-Server.
Apollo Client (front-end)
e muito mais.
Gênero: Programação
Formato: MP4
Idioma: Português
Tamanho: 21.61 GB
Servidor: Torrent