ANÚNCIO

~/questoes/programacao

Em um projeto fullstack com Next.js, onde o código do backend e frontend devem estar organizados?

Responda, confira o feedback e use o resultado para orientar sua revisão.
Aula de referência Projeto fullstack com Next.js para iniciantes
Para fixar

Organizando Frontend e Backend no Next.js

Conceito central

No Next.js, frontend e backend podem coexistir no mesmo repositório graças à estrutura inteligente de pastas. O frontend fica em 'pages' (ou 'app' na versão mais recente) e o backend usa a pasta 'api', criando uma organização clara e facilitando a comunicação entre as duas camadas.

Por que essa resposta faz sentido

O Next.js foi desenhado para simplificar o desenvolvimento fullstack permitindo que você organize componentes React em 'pages' e crie endpoints HTTP dentro de 'api'. Isso elimina a necessidade de dois repositórios separados, mantendo tudo sincronizado e facilitando a manutenção do projeto.

Armadilhas comuns

  • Confundir a pasta 'public' com a pasta 'api' e tentar colocar lógica de backend em arquivos estáticos
  • Acreditar que é obrigatório separar frontend e backend em máquinas ou repositórios diferentes quando se usa Next.js
  • Não perceber que cada arquivo dentro de 'pages/api' vira automaticamente uma rota acessível (ex: 'pages/api/usuarios.js' → '/api/usuarios')

Entenda as alternativas

A

A pasta 'public' no Next.js é exclusivamente para arquivos estáticos (imagens, fontes, ícones) que o navegador acessa diretamente. Código do backend nunca deve ficar ali, pois seria exposto publicamente e não executaria no servidor.

B

Esta é a organização padrão do Next.js. Componentes e páginas ficam em 'pages', enquanto endpoints da API ficam em 'pages/api'. Cada arquivo em 'api' vira automaticamente uma rota HTTP que o frontend pode chamar.

C

Embora seja um padrão em alguns tipos de arquitetura, separar frontend e backend em repositórios diferentes e máquinas diferentes não é a solução recomendada para iniciantes no Next.js. O framework foi criado justamente para juntar tudo no mesmo projeto.

D

Node.js e JavaScript puro são tecnologias, não formatos de repositório. Além disso, essa separação não aproveita os benefícios do Next.js de ter frontend e backend integrados e sincronizados.

Dica prática: Crie um novo projeto Next.js e explore a estrutura: coloque um arquivo chamado 'ola.js' em 'pages/api' com uma função simples que retorna JSON. Acesse 'http://localhost:3000/api/ola' no navegador e veja a mágica do roteamento automático acontecer.

Revise pensando: Se você criar o arquivo 'pages/api/produtos.js', qual será a URL para acessar esse endpoint do navegador ou do seu código frontend?