DEV Community

Wilson Lucena
Wilson Lucena

Posted on

1

Criando uma API em NodeJS: Um Guia para Iniciantes

Se você está iniciando no mundo do desenvolvimento com JavaScript e quer criar sua primeira API usando NodeJS, está no lugar certo! Neste artigo, vamos explorar como construir uma API RESTful simples utilizando o framework Express. Vamos trabalhar com todos os verbos HTTP principais e, ao final, você terá uma compreensão sólida de como montar sua própria API. Vamos lá!

Pré-requisitos

Antes de começarmos, certifique-se de ter o NodeJS e o npm (Node Package Manager) instalados em sua máquina. Você pode baixar ambos do site oficial do Node.js.

Configurando o Projeto

  1. Inicie um novo projeto NodeJS

Abra seu terminal e crie um diretório para seu projeto. Em seguida, inicialize um novo projeto NodeJS:


mkdir minha-api

cd minha-api

npm init -y

Enter fullscreen mode Exit fullscreen mode

Isso criará um arquivo package.json com as configurações padrão.

  1. Instale o Express

Para criar nossa API, precisamos do Express, um framework web que simplifica o desenvolvimento em NodeJS.


npm install express

Enter fullscreen mode Exit fullscreen mode

Criando Servidor com Express

Vamos começar criando um servidor básico.

  1. Crie o arquivo principal

No diretório raiz do projeto, crie um arquivo chamado index.js.

  1. Configure o servidor básico

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


const express = require('express');

const app = express();

const port = 3000;

app.use(express.json());

app.listen(port, () => {

console.log(`Servidor rodando em http://localhost:${port}`);

});

Enter fullscreen mode Exit fullscreen mode

Este código cria um servidor que escuta na porta 3000 e está pronto para receber requisições.

Trabalhando com Verbos HTTP

Agora que temos um servidor básico em execução, vamos adicionar rotas para cada um dos principais verbos HTTP: GET, POST, PUT e DELETE.

  1. Método GET

Vamos começar com uma rota que retorna uma lista de itens:


const items = [

{ id: 1, name: 'Item 1' },

{ id: 2, name: 'Item 2' },

];

app.get('/items', (req, res) => {

res.json(items);

});

Enter fullscreen mode Exit fullscreen mode

Esta rota responderá com uma lista de itens quando acessarmos http://localhost:3000/items.

  1. Método POST

Para adicionar um novo item à lista, usamos o verbo POST:


app.post('/items', (req, res) => {

const newItem = req.body;

newItem.id = items.length + 1;

items.push(newItem);

res.status(201).json(newItem);

});

Enter fullscreen mode Exit fullscreen mode

Com esta rota, você pode enviar um novo item no corpo da requisição e ele será adicionado à lista.

  1. Método PUT

Para atualizar um item existente, utilizamos o verbo PUT:


app.put('/items/:id', (req, res) => {

const id = parseInt(req.params.id, 10);

const itemIndex = items.findIndex(item => item.id === id);

if (itemIndex !== -1) {

const updatedItem = { id, ...req.body };

items[itemIndex] = updatedItem;

res.json(updatedItem);

} else {

res.status(404).send('Item não encontrado');

}

});

Enter fullscreen mode Exit fullscreen mode

Nesta rota, podemos atualizar um item existente pelo seu ID.

  1. Método DELETE

Para remover um item, usamos o verbo DELETE:


app.delete('/items/:id', (req, res) => {

const id = parseInt(req.params.id, 10);

const itemIndex = items.findIndex(item => item.id === id);

if (itemIndex !== -1) {

items.splice(itemIndex, 1);

res.status(204).send();

} else {

res.status(404).send('Item não encontrado');

}

});

Enter fullscreen mode Exit fullscreen mode

Esta rota permitirá que você exclua um item pelo ID.

Conclusão

E pronto! Você criou uma API básica em NodeJS utilizando Express que responde aos verbos HTTP GET, POST, PUT e DELETE. Este exemplo é um ponto de partida excelente para entender como APIs funcionam e como você pode expandi-las para casos mais complexos.

Para mais informações sobre o Express, você pode consultar a documentação oficial. Além disso, recomendo a leitura do livro "Node.js Design Patterns" de Mario Casciaro e Luciano Mammino para aprofundar seus conhecimentos.

Boa codificação!

Sentry image

Hands-on debugging session: instrument, monitor, and fix

Join Lazar for a hands-on session where you’ll build it, break it, debug it, and fix it. You’ll set up Sentry, track errors, use Session Replay and Tracing, and leverage some good ol’ AI to find and fix issues fast.

RSVP here →

Top comments (0)

Heroku

Build apps, not infrastructure.

Dealing with servers, hardware, and infrastructure can take up your valuable time. Discover the benefits of Heroku, the PaaS of choice for developers since 2007.

Visit Site

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay