Trilha de estudo
Trilha GraphQL: tudo o que estudar, tópico por tópico
Avaliacao abrangente de GraphQL cobrindo design de schema, sistema de tipos, queries e mutations, resolvers, subscriptions, autenticacao e autorizacao, caching, paginacao, rate limiting, federation e estrategias de teste.
Resposta curta
Para aprender GraphQL, percorra 6 módulos e 22 tópicos na ordem em que um apoia o próximo. Comece por Schema & Tipos e siga para Queries & Mutations e Resolvers. Use o mapa como checklist, ou meça seu nível e estude só o que falta.
O que você vai estudar
Os tópicos estão agrupados por módulo. Abra um para ver os objetivos e os conceitos-chave.
1 · Schema & Tipos4 tópicos
Fundamentos de Schema
Linguagem de Definicao de Schema (SDL), tipos raiz (Query, Mutation, Subscription), abordagens schema-first vs code-first, introspecao e documentacao de schema
Objetivos
- Escrever schemas GraphQL validos usando SDL
- Compreender o papel dos tipos raiz em um schema
Conceitos-chave
- sintaxe SDL
- tipos raiz (Query, Mutation, Subscription)
- design schema-first
- design code-first
- introspecao
- documentacao de schema
Tipos Escalares
Tipos escalares nativos (Int, Float, String, Boolean, ID), tipos escalares customizados, serializacao e validacao, e escalares customizados comuns (DateTime, JSON, URL)
Objetivos
- Identificar e usar tipos escalares nativos do GraphQL corretamente
- Implementar tipos escalares customizados com serializacao adequada
Conceitos-chave
- tipo Int
- tipo Float
- tipo String
- tipo Boolean
- tipo ID
- escalares customizados
- serializacao de escalares
- validacao de escalares
Tipos Objeto
Definicoes de tipos objeto, tipos de campo, modificadores non-null (!) e lista ([]), enums, interfaces, unions e relacionamentos de tipos
Objetivos
- Projetar tipos objeto com nullabilidade e modificadores de lista adequados
- Usar interfaces e unions para polimorfismo
Conceitos-chave
- definicao de tipo objeto
- modificador non-null (!)
- modificador lista ([])
- tipos enum
- interfaces
- unions
- relacionamentos de tipos
- tipos abstratos
Tipos de Entrada
Tipos objeto de entrada para mutations, padroes de validacao de entrada, diferencas entre tipos de entrada e saida, e tipos de entrada aninhados
Objetivos
- Projetar tipos de entrada para mutations com padroes de validacao adequados
- Distinguir entre uso de tipos de entrada e saida
Conceitos-chave
- palavra-chave input
- tipos entrada vs saida
- tipos de entrada aninhados
- validacao de entrada
- valores padrao
- campos obrigatorios vs opcionais
2 · Queries & Mutations4 tópicos
Fundamentos de Query
Operacoes de query, selecao de campos, queries aninhadas, aliases, nomes de operacao e documentos de query
Objetivos
- Escrever queries GraphQL com selecao de campos adequada
- Usar aliases e nomes de operacao efetivamente
Conceitos-chave
- operacao de query
- selecao de campos
- queries aninhadas
- aliases
- nomes de operacao
- multiplas queries
- documentos de query
- conjuntos de selecao
Mutations
Operacoes de mutation, argumentos de entrada, tipos de retorno, padroes de resposta de mutation e atualizacoes otimistas
Objetivos
- Projetar mutations com tipos de entrada e retorno claros
- Compreender semantica de execucao de mutations
Conceitos-chave
- operacao de mutation
- argumentos de mutation
- tipos de retorno de mutation
- padroes de resposta de mutation
- execucao sequencial
- efeitos colaterais
Argumentos & Variaveis
Argumentos de campo, variaveis de query, tipos de variaveis, valores padrao, validacao de variaveis e queries dinamicas
Objetivos
- Usar variaveis para parametrizar operacoes GraphQL
- Aplicar declaracoes de tipo de variaveis adequadas
Conceitos-chave
- argumentos de campo
- variaveis de query ($)
- tipos de variaveis
- valores padrao
- variaveis obrigatorias (!)
- validacao de variaveis
- queries dinamicas
- argumentos inline
Fragments
Definicoes de fragment, espalhamento de fragment, fragments inline, condicoes de tipo, composicao de fragments e padroes DRY de query
Objetivos
- Usar fragments para reduzir duplicacao em queries
- Aplicar fragments inline para tipos polimorficos
Conceitos-chave
- definicao de fragment
- espalhamento de fragment (...)
- fragments inline
- condicoes de tipo (on)
- composicao de fragments
- selecoes reutilizaveis
- queries polimorficas
- colocacao de fragments
3 · Resolvers4 tópicos
Fundamentos de Resolver
Funcoes resolver, assinatura do resolver (parent, args, context, info), resolvers padrao, cadeia de resolvers e tipos de retorno
Objetivos
- Implementar funcoes resolver com tratamento adequado de argumentos
- Compreender a cadeia de execucao de resolvers
Conceitos-chave
- funcao resolver
- argumentos do resolver (parent, args, context, info)
- resolvers padrao
- cadeia de resolvers
- tipos de retorno do resolver
- resolvers baseados em Promise
- resolvers em nivel de campo
- resolvers de tipo
Fontes de Dados
Conectando resolvers a bancos de dados, APIs REST, microsservicos, abstracao de fontes de dados e integracao com ORM
Objetivos
- Conectar resolvers GraphQL a diversas fontes de dados
- Abstrair padroes de acesso a dados para manutenibilidade
Conceitos-chave
- integracao com banco de dados
- encapsulamento de API REST
- abstracao de fonte de dados
- integracao com ORM
- pool de conexoes
- cache de fonte de dados
- comunicacao com microsservicos
- carregamento em lote
Problema N+1
Compreensao do problema de query N+1 no GraphQL, padrao DataLoader, batching e caching, e tecnicas de otimizacao de queries
Objetivos
- Identificar e resolver problemas de query N+1
- Implementar DataLoader para carregamento em lote eficiente
Conceitos-chave
- problema de query N+1
- padrao DataLoader
- agrupamento de requisicoes
- cache por requisicao
- implementacao de funcao batch
- estrategias de cache do DataLoader
- planejamento de queries
- abordagens join
Contexto & Middleware
Objeto de contexto GraphQL, padroes de middleware, wrappers de resolver, hooks de ciclo de vida de requisicao e sistemas de plugin
Objetivos
- Projetar objetos de contexto para dados com escopo de requisicao
- Implementar padroes de middleware para preocupacoes transversais
Conceitos-chave
- objeto de contexto
- construcao de contexto
- padroes de middleware
- wrappers de resolver
- middleware em nivel de campo
- ciclo de vida da requisicao
- arquitetura de plugins
- extensoes
4 · Subscriptions & Seguranca4 tópicos
Subscriptions
Subscriptions GraphQL, transporte WebSocket, padroes pub/sub, resolvers de subscription e filtragem de eventos em tempo real
Objetivos
- Implementar subscriptions em tempo real com transporte adequado
- Projetar resolvers de subscription orientados a eventos
Conceitos-chave
- tipo subscription
- protocolo WebSocket
- padrao pub/sub
- resolver de subscription
- filtragem de eventos
- ciclo de vida de subscription
- protocolo graphql-ws
- escalabilidade de subscriptions
Autenticacao
Autenticacao em APIs GraphQL, integracao com JWT, gerenciamento de sessao, validacao de token no contexto e mutations de login/logout
Objetivos
- Implementar fluxos de autenticacao no GraphQL
- Validar tokens e injetar contexto do usuario
Conceitos-chave
- autenticacao JWT
- validacao de token
- autenticacao baseada em contexto
- mutations de login
- gerenciamento de sessao
- tokens de atualizacao
- autenticacao por chave de API
- integracao OAuth
Autorizacao
Autorizacao em nivel de campo, autorizacao baseada em diretivas, controle de acesso baseado em funcoes, permissoes em nivel de resolver e middleware de autorizacao
Objetivos
- Implementar autorizacao em nivel de campo no GraphQL
- Projetar sistemas de permissao escalaveis
Conceitos-chave
- autorizacao em nivel de campo
- autorizacao baseada em diretivas (@auth)
- controle de acesso baseado em funcoes
- permissoes em nivel de resolver
- middleware de autorizacao
- autorizacao em nivel de dados
- diretivas de schema para autorizacao
- composicao de permissoes
Tratamento de Erros
Formato de erro GraphQL, extensoes de erro, respostas com dados parciais, classificacao de erros e tipos de erro customizados
Objetivos
- Projetar estrategias de tratamento de erros para APIs GraphQL
- Implementar tipos de erro customizados com extensoes adequadas
Conceitos-chave
- formato de erro GraphQL
- extensoes de erro
- respostas com dados parciais
- classificacao de erros
- tipos de erro customizados
- mascaramento de erros
- codigos de erro
- tratamento de erros baseado em union
5 · Performance3 tópicos
Caching
Desafios de cache HTTP com GraphQL, cache de resposta, cache normalizado, invalidacao de cache, estrategias CDN e queries persistentes
Objetivos
- Projetar estrategias de caching para APIs GraphQL
- Implementar queries persistentes para performance
Conceitos-chave
- desafios de cache HTTP
- cache de resposta
- cache normalizado
- invalidacao de cache
- estrategias CDN
- queries persistentes
- queries persistentes automaticas (APQ)
- diretivas cache-control
Paginacao
Paginacao baseada em cursor, paginacao por offset, especificacao de conexao Relay, edges, nodes, pageInfo e padroes de design de paginacao
Objetivos
- Implementar paginacao por cursor compativel com Relay
- Escolher entre estrategias de paginacao com base nos requisitos
Conceitos-chave
- paginacao baseada em cursor
- paginacao por offset
- especificacao de conexao Relay
- edges e nodes
- tipo pageInfo
- argumentos first/after/last/before
- contagem total
- performance de paginacao
Rate Limiting
Analise de complexidade de query, limitacao de profundidade, limitacao de largura, rate limiting baseado em custo e whitelisting de queries
Objetivos
- Implementar analise de complexidade de query para rate limiting
- Projetar throttling baseado em custo para APIs GraphQL
Conceitos-chave
- analise de complexidade de query
- limitacao de profundidade
- limitacao de largura
- rate limiting baseado em custo
- whitelisting de queries
- analise estatica
- pontuacao de complexidade
- estrategias de throttling
6 · Padroes Avancados3 tópicos
Design de Schema
Principios de design de schema, convencoes de nomenclatura, especificacao Relay, evolucao de schema, depreciacao e estrategias de versionamento
Objetivos
- Projetar schemas GraphQL escalaveis e evoluiveis
- Aplicar convencoes de nomenclatura e principios Relay
Conceitos-chave
- principios de design de schema
- convencoes de nomenclatura
- especificacao Relay
- evolucao de schema
- depreciacao (@deprecated)
- estrategias de versionamento
- identificacao global de objetos
- schema stitching
Federation
Apollo Federation, composicao de subgrafos, referencias de entidades, diretiva @key, tipos federados e arquitetura de gateway
Objetivos
- Projetar arquiteturas GraphQL federadas
- Implementar resolucao de entidades entre subgrafos
Conceitos-chave
- Apollo Federation
- composicao de subgrafos
- diretiva @key
- diretiva @external
- diretiva @requires
- referencias de entidades
- arquitetura de gateway
- planejamento de queries federadas
Testes
Testes unitarios de resolvers, testes de integracao de APIs GraphQL, validacao de schema, mocking e estrategias de teste ponta a ponta
Objetivos
- Escrever testes abrangentes para APIs GraphQL
- Implementar estrategias de teste em multiplos niveis
Conceitos-chave
- testes unitarios de resolvers
- testes de integracao
- validacao de schema
- mocking de resolvers
- testes de snapshot
- testes de query
- testes de mutation
- testes ponta a ponta
Níveis: Júnior, Pleno e Sênior
Explique com suas palavras
Corrigido por IA · sem cadastro · 1 perguntaSem alternativas para chutar: você escreve, a IA corrige com a rubrica do tópico e diz em que nível sua resposta está.
Já estuda GraphQL?
A avaliação mede tópico por tópico, e o plano pula o que você já sabe.
Aberto para ler. A conta só é necessária para ser medido.
Perguntas frequentes
Por onde começar a estudar GraphQL?
Comece por Schema & Tipos: Fundamentos de Schema, Tipos Escalares e Tipos Objeto. O mapa ordena os tópicos pelo que depende de quê, então cada um prepara o seguinte.
Quanto tempo leva uma avaliação completa de GraphQL?
Uma avaliação completa desta trilha leva cerca de 45 minutos. O tempo de estudo depende de onde você começa; o diagnóstico mostra quais tópicos você pode pular.
Preciso de conta para usar esta página?
Não. O mapa, os objetivos e os conceitos-chave são abertos. A conta só é necessária para ser medido, ver seu gap por tópico e receber um plano.