Apollo Server para JavaScript (Node.js): guia completo com exemplos

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Apollo Server para JavaScript (Node.js): guia completo com exemplos

Apollo Server é uma biblioteca poderosa e flexível para criar servidores GraphQL em Node.js. Ela faz parte do ecossistema Apollo GraphQL e oferece aos desenvolvedores um conjunto de ferramentas práticas para construir APIs performáticas, escaláveis e fáceis de manter. Se você conhece REST, pode pensar no GraphQL como uma alternativa onde o cliente decide quais dados precisa e o servidor retorna exatamente o que foi solicitado. O Apollo Server cuida de toda a parte operacional: parsing de consultas, validação de schema, execução de resolvers e formatação da resposta.

Por que usar o Apollo Server? Primeiro, ele simplifica drasticamente o desenvolvimento de servidores GraphQL. Você não precisa escrever parsers, validadores ou se preocupar com segurança (proteção contra SQL injection, limitação de profundidade de consulta, etc.) — tudo isso já está embutido. Segundo, o Apollo Server suporta diversas integrações: com Express, Fastify, Koa, AWS Lambda, Azure Functions e outras plataformas. Isso significa que você pode implantar o servidor em qualquer lugar — desde uma aplicação local simples até uma função serverless. Terceiro, a biblioteca é ativamente mantida, possui uma grande comunidade e documentação excelente, tornando-se o padrão de facto para GraphQL em Node.js.

Neste artigo, vamos abordar detalhadamente a instalação, os métodos principais, escrever vários exemplos práticos e dar dicas de performance. O conteúdo será útil tanto para iniciantes que estão começando com GraphQL quanto para desenvolvedores experientes que desejam aprofundar seus conhecimentos sobre o Apollo Server.

1. Instalação

Para trabalhar com o Apollo Server, você precisa do Node.js versão 14 ou superior. A instalação é feita via npm (ou yarn). O pacote principal é o @apollo/server. Você também precisará do graphql — o núcleo da linguagem GraphQL, sem o qual o Apollo Server não funciona.

npm install @apollo/server graphql

Se você planeja usar o Apollo Server com Express (a opção mais popular), instale também:

npm install express cors body-parser
npm install @as-integrations/express

Para trabalhar com TypeScript (recomendado), instale os tipos:

npm install --save-dev typescript @types/node @types/express

2. Início rápido — exemplo mínimo funcional

Vamos criar um servidor GraphQL simples que cumprimenta o usuário. Crie um arquivo index.js e adicione o seguinte código:

import { ApolloServer } from '@apollo/server';
import { startStandaloneServer } from '@apollo/server/standalone';

// 1. Define o schema (typeDefs)
const typeDefs = `#graphql
  type Query {
    hello: String
  }
`;

// 2. Define os resolvers
const resolvers = {
  Query: {
    hello: () => 'Olá, mundo! Este é o Apollo Server!',
  },
};

// 3. Cria a instância do servidor
const server = new ApolloServer({
  typeDefs,
  resolvers,
});

// 4. Inicia o servidor
const { url } = await startStandaloneServer(server, {
  listen: { port: 4000 },
});

console.log(`🚀 Servidor rodando em: ${url}`);

Execute o servidor com o comando node index.js (se estiver usando ES modules, adicione "type": "module" no package.json). Abra o navegador e acesse http://localhost:4000. Você verá a interface Apollo Sandbox, onde pode executar a consulta:

query {
  hello
}

A resposta deve ser: { "data": { "hello": "Olá, mundo! Este é o Apollo Server!" } }. Parabéns, seu primeiro servidor GraphQL está funcionando!

3. Métodos/funções/classes principais

Vamos explorar os elementos-chave do Apollo Server. Para cada um, fornecemos a assinatura, uma breve descrição e um exemplo.

3.1. new ApolloServer(config)

Assinatura:

Recommendations