DEV Community

Cover image for GraphQL e Node.js: GraphQL e Node.js: Construindo APIs Poderosas
Vitor Rios
Vitor Rios

Posted on

GraphQL e Node.js: GraphQL e Node.js: Construindo APIs Poderosas

Introdução

GraphQL representa uma abordagem poderosa e flexível para APIs, permitindo que clientes solicitem exatamente os dados de que precisam, diferentemente das APIs REST tradicionais, que retornam dados fixos e pré-definidos. Neste artigo, exploraremos como configurar um servidor GraphQL com Node.js, oferecendo um exemplo prático de como criar e consultar uma API GraphQL.

Por que GraphQL?

Antes de mergulharmos na implementação, vamos entender as vantagens do GraphQL:

  • Flexibilidade: Os clientes podem buscar exatamente o que precisam, nem mais, nem menos.
  • Eficiência na Comunicação: Reduz o over-fetching e under-fetching de dados.
  • Desenvolvimento Rápido: Facilita a evolução da API sem versões múltiplas.
  • Introspecção: Possui capacidades de auto-documentação.

Configurando o Ambiente

Certifique-se de ter o Node.js instalado. Inicie um novo projeto Node.js e instale as dependências necessárias:

mkdir graphql-api
cd graphql-api
npm init -y
npm install graphql express express-graphql
Enter fullscreen mode Exit fullscreen mode

Criando um Servidor GraphQL

Vamos começar configurando um servidor GraphQL simples com Express e express-graphql, um middleware que facilita a criação de um servidor GraphQL.

Definindo o Schema

Em um arquivo chamado schema.js, definimos o schema GraphQL da nossa API:

const { buildSchema } = require('graphql');

const schema = buildSchema(`
  type Query {
    message: String
  }
`);

module.exports = schema;
Enter fullscreen mode Exit fullscreen mode

Implementando o Resolver

Os resolvers são responsáveis por retornar os dados para as queries GraphQL. No nosso caso, vamos retornar uma mensagem simples:

const root = {
  message: () => 'Hello, GraphQL!',
};

module.exports = root;
Enter fullscreen mode Exit fullscreen mode

Configurando o Servidor Express

Agora, vamos configurar o servidor Express para usar GraphQL:

const express = require('express');
const { graphqlHTTP } = require('express-graphql');
const schema = require('./schema');
const root = require('./root');

const app = express();

app.use('/graphql', graphqlHTTP({
  schema: schema,
  rootValue: root,
  graphiql: true,
}));

app.listen(4000, () => console.log('Servidor rodando em http://localhost:4000/graphql'));
Enter fullscreen mode Exit fullscreen mode

Testando a API

Com o servidor rodando, você pode testar a API acessando http://localhost:4000/graphql no navegador. Use o GraphiQL, uma interface gráfica integrada, para executar a seguinte query:

{
  message
}
Enter fullscreen mode Exit fullscreen mode

Você deverá receber a resposta:

{
  "data": {
    "message": "Hello, GraphQL!"
  }
}
Enter fullscreen mode Exit fullscreen mode

Conclusão

Este exemplo básico demonstra como configurar um servidor GraphQL com Node.js, desde a definição do schema até a implementação dos resolvers. GraphQL oferece uma alternativa robusta e flexível às APIs REST, possibilitando consultas eficientes e específicas que são ideais para aplicações modernas web e mobile. À medida que você expande sua API GraphQL, pode explorar conceitos mais avançados, como mutações, tipos personalizados e integração com bancos de dados.

Top comments (0)