Logo

Publicado

- 4 min read

Criando APIs Com NodeJS: Um Guia Prático Para Desenvolvedores Intermediários

img of Criando APIs Com NodeJS: Um Guia Prático Para Desenvolvedores Intermediários

Introdução

A criação de APIs (Application Programming Interface) é uma habilidade essencial para desenvolvedores backend. Elas permitem que diferentes sistemas se comuniquem entre si e são fundamentais em arquiteturas modernas, como microserviços. NodeJS, uma plataforma construída sobre o motor V8 do Chrome, permite que desenvolvedores criem aplicações escaláveis e eficientes. Neste post, vamos explorar os passos para criar uma API simples utilizando NodeJS e Express, uma das bibliotecas mais populares para esse propósito.

Pré-requisitos

Antes de começar, é importante que você tenha um conhecimento intermediário de JavaScript e esteja familiarizado com o ambiente NodeJS. Além disso, vamos usar o Express, portanto, é fundamental que você tenha o NodeJS instalado em sua máquina. Caso ainda não tenha, você pode baixar aqui.

Principais Conceitos

O que é uma API?

Uma API é uma interface que permite a comunicação entre diferentes serviços. As APIs mais comuns utilizam o protocolo HTTP e permitem operações com os métodos GET, POST, PUT e DELETE.

O que é o NodeJS?

NodeJS é um ambiente de execução de JavaScript no lado do servidor. Sua arquitetura baseada em eventos e I/O não bloqueante o torna ideal para aplicações que requerem escalabilidade, como APIs.

O que é o Express?

Express é um framework para NodeJS que simplifica o desenvolvimento de aplicações web e APIs. Ele oferece recursos robustos para manipulação de rotas, gerenciamento de requisições e integração com middleware.

Exemplo de Código

Vamos montar uma API simples para gerenciar uma lista de tarefas (TODO).

Passo 1: Configuração do Projeto

  1. Crie uma nova pasta para o projeto e navegue até ela:
    mkdir todo-api
 cd todo-api
  1. Inicialize o projeto e instale o Express:
    npm init -y
 npm install express

Passo 2: Criando o Servidor

Crie um arquivo chamado index.js e adicione o seguinte código:

   const express = require('express')
const app = express()
const PORT = 3000

// Middleware para converter o corpo da requisição em JSON
app.use(express.json())

// Lista de tarefas
let todos = []

// Rotas
app.get('/todos', (req, res) => {
	res.json(todos)
})

app.post('/todos', (req, res) => {
	const { task } = req.body
	const newTodo = { id: todos.length + 1, task }
	todos.push(newTodo)
	res.status(201).json(newTodo)
})

// Inicia o servidor
app.listen(PORT, () => {
	console.log(`Servidor rodando em http://localhost:${PORT}`)
})

Passo 3: Testando a API

Para testar a API, você pode utilizar ferramentas como o Postman ou o Insomnia. Ao iniciar o servidor com node index.js, você poderá fazer requisições para http://localhost:3000/todos.

Mini-Projeto Prático

Considere expandir este projeto permitindo a edição e exclusão de tarefas. Adicione as seguintes rotas:

   app.put('/todos/:id', (req, res) => {
	const { id } = req.params
	const { task } = req.body
	const todo = todos.find((t) => t.id == id)
	if (todo) {
		todo.task = task
		res.json(todo)
	} else {
		res.status(404).send('Tarefa não encontrada')
	}
})

app.delete('/todos/:id', (req, res) => {
	const { id } = req.params
	todos = todos.filter((t) => t.id != id)
	res.status(204).send()
})

Padrões de Projeto Aconselháveis

  • Organização de pastas: Separe as rotas, controladores e modelos para manter o código limpo e modular.
  • Middleware: Utilize middlewares para lidar com autenticação e validação de dados.
  • Tratamento de erros: Centralize o tratamento de erros para simplificar a manutenção.

Próximos Passos para Aprofundamento

  1. Persistência de dados: Tente integrar um banco de dados, como MongoDB ou PostgreSQL, ao seu projeto.
  2. Documentação de API: Utilize ferramentas como Swagger para documentar sua API.
  3. Segurança: Aprenda sobre autenticação com JWT e práticas recomendadas de segurança.

Possíveis Erros e Como Solucionar

  • Erro de porta já em uso: Certifique-se de que não há outro aplicativo utilizando a mesma porta. Use lsof -i :3000 no terminal para verificar.
  • Erro ao enviar JSON: Verifique se você está utilizando o cabeçalho Content-Type: application/json nas suas requisições.

Materiais de Apoio- Documentação do Express

Com este guia, você já pode começar a criar suas próprias APIs usando NodeJS e Express! Sinta-se à vontade para compartilhar suas dúvidas e experiências sobre o assunto. Boa codificação!”