Parece que você está usando um bloqueador de anúncios. Fazemos um conteúdo de qualidade e de graça e contamos com a publicidade para ajudar a manter nosso site. Por favor nos ajude 😢

Criando uma API do Zero com Node.js e Banco de Dados: Um Guia Completo

Desenvolver uma API do zero pode parecer uma tarefa complexa, especialmente para quem está começando no mundo do desenvolvimento backend. No entanto, com as ferramentas certas e um passo a passo bem estruturado, você pode criar uma API robusta e funcional utilizando Node.js e um banco de dados. Neste guia, vamos explorar como criar uma API do zero, desde a configuração do ambiente até a conexão com um banco de dados, utilizando Node.js, Express e MongoDB.

Anúncio

Introdução ao Desenvolvimento Backend

Antes de mergulharmos no código, é importante entender o que é o backend e qual o seu papel em uma aplicação. O backend é a parte do sistema que lida com a lógica de negócios, o banco de dados e a comunicação com o frontend. Quando você acessa um site, como o Facebook, e faz login, o frontend (a parte visual) envia suas informações de login para o backend, que verifica se os dados estão corretos e decide se você pode acessar sua conta.

Neste tutorial, vamos criar uma API que permitirá a criação, leitura, atualização e exclusão de usuários (CRUD). Para isso, utilizaremos Node.js, uma plataforma que permite executar JavaScript no servidor, e o MongoDB, um banco de dados NoSQL que armazena dados em formato JSON.

Configurando o Ambiente

Instalando o Node.js

O primeiro passo é instalar o Node.js. O Node.js é um ambiente de execução que permite rodar JavaScript no servidor. Para instalar o Node.js, acesse o site oficial nodejs.org e baixe a versão LTS (Long Term Support), que é a mais estável.

Após a instalação, você pode verificar se o Node.js foi instalado corretamente executando o seguinte comando no terminal:

node -v

Isso deve retornar a versão do Node.js instalada.

Criando uma API do Zero com Node.js e Banco de Dados: Um Guia Completo

Iniciando um Novo Projeto

Com o Node.js instalado, o próximo passo é iniciar um novo projeto. Para isso, crie uma pasta para o seu projeto e, dentro dela, execute o seguinte comando:

npm init -y

Esse comando cria um arquivo package.json, que contém as informações básicas do seu projeto, como nome, versão e dependências.

Instalando o Express

O Express é um framework para Node.js que facilita a criação de APIs e aplicações web. Para instalar o Express, execute o seguinte comando:

npm install express

Isso adicionará o Express como uma dependência do seu projeto no arquivo package.json.

Criando a Estrutura Básica da API

Criando o Arquivo server.js

Agora que temos o Express instalado, vamos criar o arquivo principal da nossa API, chamado server.js. Dentro desse arquivo, vamos configurar o servidor e definir as rotas básicas.

import express from 'express';

const app = express();
const port = 3000;

app.get('/', (req, res) => {
  res.send('API está funcionando!');
});

app.listen(port, () => {
  console.log(`Servidor rodando na porta ${port}`);
});

Neste código, estamos importando o Express, criando uma instância do aplicativo e definindo uma rota básica que responde com uma mensagem quando acessada. Em seguida, iniciamos o servidor na porta 3000.

Testando o Servidor

Para testar o servidor, execute o seguinte comando no terminal:

node server.js

Agora, se você acessar http://localhost:3000 no seu navegador, verá a mensagem “API está funcionando!”.

Criando Rotas para Manipulação de Usuários

Agora que temos o servidor básico funcionando, vamos criar rotas para manipular usuários. Vamos criar rotas para listar todos os usuários, criar um novo usuário, atualizar um usuário existente e deletar um usuário.

Listando Todos os Usuários

Vamos começar criando uma rota para listar todos os usuários. Para isso, vamos criar uma variável users que armazenará os usuários em memória (posteriormente, substituiremos isso por um banco de dados).

let users = [];

app.get('/users', (req, res) => {
  res.json(users);
});

Agora, se você acessar http://localhost:3000/users, verá uma lista vazia, pois ainda não temos usuários cadastrados.

Criando um Novo Usuário

Agora, vamos criar uma rota para adicionar um novo usuário. Para isso, vamos utilizar o método HTTP POST.

app.use(express.json());

app.post('/users', (req, res) => {
  const newUser = req.body;
  users.push(newUser);
  res.status(201).json(newUser);
});

Neste código, estamos utilizando o middleware express.json() para permitir que o servidor receba dados no formato JSON. Em seguida, definimos uma rota POST que adiciona um novo usuário à lista users e retorna o usuário criado com o status 201 (Created).

Atualizando um Usuário Existente

Para atualizar um usuário existente, vamos criar uma rota PUT que recebe o ID do usuário como parâmetro e atualiza as informações do usuário correspondente.

app.put('/users/:id', (req, res) => {
  const userId = req.params.id;
  const updatedUser = req.body;

  users = users.map(user => {
    if (user.id === userId) {
      return { ...user, ...updatedUser };
    }
    return user;
  });

  res.status(200).json(users.find(user => user.id === userId));
});

Neste código, estamos utilizando o parâmetro :id para identificar o usuário que será atualizado. Em seguida, atualizamos as informações do usuário correspondente e retornamos o usuário atualizado.

Deletando um Usuário

Por fim, vamos criar uma rota DELETE para remover um usuário da lista.

app.delete('/users/:id', (req, res) => {
  const userId = req.params.id;
  users = users.filter(user => user.id !== userId);
  res.status(200).json({ message: 'Usuário deletado com sucesso' });
});

Aqui, estamos utilizando o parâmetro :id para identificar o usuário que será deletado. Em seguida, filtramos a lista users para remover o usuário correspondente e retornamos uma mensagem de sucesso.

Conectando a API ao Banco de Dados

Até agora, estamos armazenando os usuários em memória, o que significa que os dados serão perdidos sempre que o servidor for reiniciado. Para resolver isso, vamos conectar nossa API a um banco de dados MongoDB.

Instalando o Prisma

O Prisma é uma ferramenta que facilita a conexão com o banco de dados e a manipulação de dados. Para instalar o Prisma, execute os seguintes comandos:

npm install @prisma/client
npx prisma init

Isso criará um arquivo prisma/schema.prisma e um arquivo .env para configurar a conexão com o banco de dados.

Configurando o Banco de Dados

No arquivo .env, configure a conexão com o MongoDB:

DATABASE_URL="mongodb+srv://<usuário>:<senha>@cluster0.mongodb.net/<nome-do-banco>?retryWrites=true&w=majority"

Substitua <usuário>, <senha> e <nome-do-banco> pelas suas credenciais do MongoDB.

Definindo o Modelo de Usuário

No arquivo prisma/schema.prisma, defina o modelo de usuário:

model User {
  id    String @id @default(auto()) @map("_id") @db.ObjectId
  name  String
  email String @unique
  age   Int
}

Criando e Manipulando Usuários com o Prisma

Agora, vamos atualizar nossas rotas para utilizar o Prisma para manipular os usuários no banco de dados.

import { PrismaClient } from '@prisma/client';

const prisma = new PrismaClient();

app.get('/users', async (req, res) => {
  const users = await prisma.user.findMany();
  res.status(200).json(users);
});

app.post('/users', async (req, res) => {
  const newUser = await prisma.user.create({
    data: req.body,
  });
  res.status(201).json(newUser);
});

app.put('/users/:id', async (req, res) => {
  const userId = req.params.id;
  const updatedUser = await prisma.user.update({
    where: { id: userId },
    data: req.body,
  });
  res.status(200).json(updatedUser);
});

app.delete('/users/:id', async (req, res) => {
  const userId = req.params.id;
  await prisma.user.delete({
    where: { id: userId },
  });
  res.status(200).json({ message: 'Usuário deletado com sucesso' });
});

Neste código, estamos utilizando o Prisma para realizar as operações de CRUD no banco de dados. Agora, os dados dos usuários serão persistidos no MongoDB, mesmo após reiniciar o servidor.

Conclusão

Neste tutorial, criamos uma API do zero utilizando Node.js, Express e MongoDB. Cobrimos desde a configuração do ambiente até a criação de rotas para manipulação de usuários e a conexão com um banco de dados. Com essas bases, você pode expandir sua API para incluir mais funcionalidades e integrá-la com um frontend para criar uma aplicação completa.

Se você gostou deste tutorial, não se esqueça de se inscrever no canal e deixar seu like. Na próxima aula, vamos criar o frontend para consumir essa API. Até lá, continue praticando e explorando as possibilidades do desenvolvimento backend com Node.js!

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Rolar para cima