O Guia Definitivo para Construir APIs Next.js: Uma Aventura Cheia de Exemplos

Aprenda a criar APIs poderosas com Next.js por meio de um exemplo passo a passo. Descubra os benefícios de usar Next.js para o desenvolvimento de APIs e como o Apidog pode otimizar seu fluxo de trabalho.

Miguel Oliveira

Miguel Oliveira

20 maio 2025

O Guia Definitivo para Construir APIs Next.js: Uma Aventura Cheia de Exemplos

Olá, colega desenvolvedor! Você está pronto para mergulhar no mundo do Next.js e aprender como criar APIs poderosas? Neste post do blog, vamos explorar um exemplo de API do Next.js, discutir a importância das APIs e apresentar a você uma ferramenta fantástica chamada Apidog que tornará o desenvolvimento da sua API mais fácil do que nunca. Então, pegue sua bebida favorita e vamos começar!

💡
A propósito, se você está procurando uma ferramenta fácil de usar para testar e documentar suas APIs, experimente o Apidog. É uma revolução para o desenvolvimento de APIs e você pode baixar o Apidog gratuitamente para otimizar seu fluxo de trabalho!
button

O que é Next.js?

Antes de mergulharmos nas minúcias do desenvolvimento de APIs, vamos reservar um momento para entender o que é o Next.js. Next.js é um framework popular do React que permite que os desenvolvedores construam aplicações React renderizadas no servidor com facilidade. Ele oferece recursos como geração de sites estáticos, renderização no lado do servidor e um poderoso sistema de rotas de API. Isso o torna uma excelente escolha para construir aplicações web modernas.

Next JS official website

Por que usar Next.js para APIs?

Você pode estar se perguntando, por que devo usar Next.js para APIs quando há tantas outras opções por aí? Ótima pergunta! Aqui estão algumas razões convincentes:

Simplicidade: Next.js fornece uma maneira direta e intuitiva de criar rotas de API. Você não precisa configurar um servidor separado ou configurar middlewares complexos. Está tudo embutido!

Desempenho: Com o Next.js, você pode aproveitar a renderização do lado do servidor e a geração de sites estáticos para otimizar o desempenho das suas APIs. Isso significa tempos de resposta mais rápidos e uma melhor experiência do usuário.

Flexibilidade: Next.js permite que você use uma variedade de tecnologias de backend, incluindo Node.js, Express e mais. Você pode escolher as ferramentas que melhor atendem às suas necessidades.

Amigável para SEO: Next.js foi projetado com SEO em mente, facilitando a descoberta de suas APIs pelos motores de busca.

Configurando seu projeto Next.js

Vamos começar com um simples projeto Next.js. Se você ainda não fez isso, precisará instalar o Node.js e o npm (ou yarn) na sua máquina. Depois que isso estiver feito, você pode criar um novo projeto Next.js executando o seguinte comando:

npx create-next-app my-nextjs-api

Navegue até o diretório do seu projeto:

cd my-nextjs-api

Agora, vamos criar nossa primeira rota de API!

NextJs

Criando sua primeira rota de API Next.js

No Next.js, as rotas de API são armazenadas no diretório pages/api. Vamos criar uma rota de API simples que retorna uma lista de usuários. Crie um novo arquivo chamado users.js no diretório pages/api:

mkdir -p pages/api
touch pages/api/users.js

Abra users.js e adicione o seguinte código:

// pages/api/users.js

export default function handler(req, res) {
  const users = [
    { id: 1, name: 'John Doe' },
    { id: 2, name: 'Jane Doe' },
  ];

  res.status(200).json(users);
}

Esse código define uma rota de API básica que responde com uma lista de usuários. A função handler recebe dois argumentos: req (o objeto de solicitação) e res (o objeto de resposta). Usamos res.status(200).json(users) para enviar uma resposta JSON com um código de status 200 (OK).

Testando sua API

Para testar sua nova API, inicie seu servidor de desenvolvimento Next.js:

npm run dev

Abra seu navegador e navegue até http://localhost:3000/api/users. Você deve ver uma resposta JSON com a lista de usuários:

[
  { "id": 1, "name": "John Doe" },
  { "id": 2, "name": "Jane Doe" }
]

Apresentando Apidog: Seu companheiro de desenvolvimento de API

Desenvolver e testar APIs pode ser uma tarefa assustadora, mas com as ferramentas certas, se torna muito mais fácil. É aí que o Apidog entra. O Apidog é uma ferramenta de desenvolvimento de API tudo-em-um que permite que você projete, teste e documente suas APIs sem esforço. Ele oferece uma interface amigável e recursos poderosos para otimizar seu fluxo de trabalho.

button

Veja como você pode usar o Apidog para aprimorar seu fluxo de trabalho. Apidog permite que você teste sua API diretamente na ferramenta. Você pode fazer solicitações GET, POST, PUT e DELETE, e ver as respostas em tempo real.

Passo 1: Abrir o Apidog e criar uma nova requisição.

Apidog

Passo 2: Encontrar ou inserir manualmente os detalhes da API para a requisição POST que você deseja fazer.

Apidog

Passo 3: Preencher os parâmetros obrigatórios e quaisquer dados que você queira incluir no corpo da requisição.

Apidog

Ao integrar o Apidog ao seu fluxo de trabalho, você pode economizar tempo e evitar armadilhas comuns no desenvolvimento de APIs. Além disso, é gratuito para baixar e usar!

Não acredite apenas em nossas palavras—baixe o Apidog gratuitamente e experimente a diferença por si mesmo!

Adicionando mais complexidade: Parâmetros de consulta

Agora que temos uma rota de API básica, vamos adicionar um pouco de complexidade lidando com parâmetros de consulta. Suponha que queremos filtrar a lista de usuários com base em seus nomes. Podemos alcançar isso modificando nosso arquivo users.js:

// pages/api/users.js

export default function handler(req, res) {
  const { query } = req;
  const { name } = query;

  const users = [
    { id: 1, name: 'John Doe' },
    { id: 2, name: 'Jane Doe' },
  ];

  if (name) {
    const filteredUsers = users.filter(user => user.name.toLowerCase().includes(name.toLowerCase()));
    res.status(200).json(filteredUsers);
  } else {
    res.status(200).json(users);
  }
}

Com esta atualização, nossa API agora pode filtrar usuários com base no parâmetro de consulta name. Por exemplo, navegando até http://localhost:3000/api/users?name=john retornará:

[
  { "id": 1, "name": "John Doe" }
]

Manipulando diferentes métodos HTTP

APIs frequentemente precisam lidar com diferentes métodos HTTP, como GET, POST, PUT e DELETE. Vamos modificar nosso arquivo users.js para lidar com requisições POST para adicionar novos usuários:

// pages/api/users.js

let users = [
  { id: 1, name: 'John Doe' },
  { id: 2, name: 'Jane Doe' },
];

export default function handler(req, res) {
  const { method } = req;

  switch (method) {
    case 'GET':
      res.status(200).json(users);
      break;
    case 'POST':
      const { name } = req.body;
      const newUser = { id: users.length + 1, name };
      users.push(newUser);
      res.status(201).json(newUser);
      break;
    default:
      res.setHeader('Allow', ['GET', 'POST']);
      res.status(405).end(`Método ${method} Não Permitido`);
  }
}

Agora, nossa API pode lidar com requisições GET e POST. Para testar a requisição POST, você pode usar uma ferramenta como Postman ou, melhor ainda, o Apidog. Faça uma requisição POST para http://localhost:3000/api/users com um corpo JSON:

{
  "name": "Alice Smith"
}

A resposta deve ser o novo usuário criado:

{
  "id": 3,
  "name": "Alice Smith"
}

Tratamento de erros nas APIs Next.js

Um tratamento robusto de erros é crucial para qualquer API. Vamos aprimorar nosso arquivo users.js para incluir tratamento de erros para requisições inválidas:

// pages/api/users.js

let users = [
  { id: 1, name: 'John Doe' },
  { id: 2, name: 'Jane Doe' },
];

export default function handler(req, res) {
  const { method } = req;

  switch (method) {
    case 'GET':
      res.status(200).json(users);
      break;
    case 'POST':
      const { name } = req.body;
      if (!name) {
        res.status(400).json({ error: 'Nome é obrigatório' });
      } else {
        const newUser = { id: users.length + 1, name };
        users.push(newUser);
        res.status(201).json(newUser);
      }
      break;
    default:
      res.setHeader('Allow', ['GET', 'POST']);
      res.status(405).end(`Método ${method} Não Permitido`);
  }
}

Agora, se você tentar fazer uma requisição POST sem a propriedade name no corpo, receberá uma resposta de erro:

{
  "error": "Nome é obrigatório"
}

Segurando sua API Next.js

A segurança é uma prioridade para qualquer API. Vamos implementar autenticação básica para nossas rotas de API. Usaremos uma chave de API para autenticar requisições. Primeiro, vamos criar uma nova variável de ambiente para nossa chave de API. Crie um arquivo .env.local na raiz do seu projeto:

API_KEY=mysecretapikey

Em seguida, atualize seu arquivo users.js para incluir autenticação com chave de API:

// pages/api/users.js

let users = [
  { id: 1, name: 'John Doe' },
  { id: 2, name: 'Jane Doe' },
];

export default function handler(req, res) {
  const { method, headers } = req;
  const apiKey = headers['x-api-key'];

  if (apiKey !== process.env.API_KEY) {
    return res.status(401).json({ error: 'Não Autorizado' });
  }

  switch (method) {
    case 'GET':
      res.status(200).json(users);
      break;
    case 'POST':
      const { name } = req.body;
      if (!name) {
        res.status(400).json({ error: 'Nome é obrigatório' });
      } else {
        const newUser = { id: users.length + 1, name };
        users.push(newUser);
        res.status(201).json(newUser);
      }
      break;
    default:
      res.setHeader('Allow', ['GET', 'POST']);
      res.status(405).end(`Método ${method} Não Permitido`);
  }
}

Agora, suas rotas de API exigem uma chave de API para autenticação. Inclua o cabeçalho x-api-key em suas requisições para acessar a API:

{
  "x-api-key": "mysecretapikey"
}

Conclusão

Construir APIs com Next.js é divertido e recompensador. Nós cobrimos o básico de criar rotas de API, lidar com diferentes métodos HTTP, tratamento de erros e adicionar segurança. Além disso, nós apresentamos a você o Apidog, uma ferramenta fantástica para projetar, testar e documentar suas APIs.

Seja você um desenvolvedor experiente ou alguém que está apenas começando, Next.js e Apidog fornecem as ferramentas de que você precisa para construir APIs poderosas e escaláveis. Então, o que você está esperando? Comece a construir sua API Next.js hoje e não se esqueça de baixar o Apidog gratuitamente para otimizar seu processo de desenvolvimento.

button

Pratique o design de API no Apidog

Descubra uma forma mais fácil de construir e usar APIs