Pular para o conteúdo

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.

6
módulos
22
tópicos
45
min para avaliar

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 pergunta

Sem alternativas para chutar: você escreve, a IA corrige com a rubrica do tópico e diz em que nível sua resposta está.

0 / 600

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.