Leodario.com

Leodario.com – Tudo sobre Tecnologia

Aula 30 – API JavaScript, Node.js e Express – Request Body Parsing – express.json(), express.urlencoded()

Imagem destacada da aula de API

Introdução (3 min)

Imagine um garçom em um restaurante. Para atender seu pedido, ele precisa entender o que você deseja. O cardápio é como a documentação da API, mas o pedido em si, com suas personalizações, é o request body. Em APIs, o request body carrega os dados enviados pelo cliente para o servidor, como informações de um novo usuário ou a atualização de um produto.

Dominar o processamento do request body é vital para construir APIs robustas e modernas. Nesta aula prática, você aprenderá a usar express.json() e express.urlencoded() para extrair informações dos requests e utilizá-las em sua aplicação Node.js/Express, seguindo as melhores práticas da indústria.

Conceito Fundamental (7 min)

O request body é a porção da requisição HTTP que contém dados enviados pelo cliente ao servidor. Ele é comumente utilizado em métodos POST, PUT e PATCH. Para acessar esses dados em uma aplicação Express, precisamos de middlewares específicos: express.json() para dados em formato JSON e express.urlencoded() para dados codificados como formulário HTML (URL-encoded).

Em cenários reais, express.json() é essencial para lidar com dados estruturados enviados por aplicativos mobile, front-ends com JavaScript, e outras APIs. Já express.urlencoded() é relevante para receber dados de formulários HTML tradicionais.

A integração com outras tecnologias, como bancos de dados, ocorre após a leitura dos dados do request body. Uma vantagem desses middlewares é a simplificação do processo de parsing. No entanto, é fundamental implementar validação de dados para garantir a segurança e integridade da sua aplicação.

Implementação Prática (10 min)

const express = require('express');
const app = express();
const port = 3000; // Porta padrão para o HostGator Plano M

// Middlewares para parsing do request body app.use(express.json()); app.use(express.urlencoded({ extended: true })); // Suporta objetos aninhados

app.post('/usuario', (req, res) => { try { // Validação básica dos dados de entrada if (!req.body.nome || !req.body.email) { return res.status(400).json({ erro: 'Nome e email são obrigatórios' }); }

const novoUsuario = { nome: req.body.nome, email: req.body.email };

// Simulação de salvamento em banco de dados (substitua pela lógica real) console.log('Novo usuário criado:', novoUsuario);

res.status(201).json({ mensagem: 'Usuário criado com sucesso', usuario: novoUsuario }); } catch (error) { console.error('Erro ao criar usuário:', error); // Logging profissional res.status(500).json({ erro: 'Erro interno do servidor' }); } });

app.listen(port, () => { console.log(Servidor rodando em http://localhost:${port}); });


Instalação das dependências (apenas na primeira vez)

📚 Informações da Aula

Curso: API Completo - Node.js & Express

Tempo estimado: 25 minutos

Pré-requisitos: JavaScript básico

npm install express

Executar a aplicação

node index.js

Exercício Hands-On (5 min)

Crie uma rota /produto que aceite requisições POST com os campos nome e preco no request body. Valide se ambos os campos foram enviados e, em caso positivo, registre as informações no console (simulando o armazenamento em um banco de dados). Retorne uma resposta com status 201 e uma mensagem de sucesso. Em caso de erro de validação, retorne status 400 e uma mensagem informativa.

Solução:

app.post('/produto', (req, res) => {
  // Implemente a lógica aqui, seguindo o enunciado.
  // Valide nome e preco
  // Log no console simulando banco de dados
  // Retorne 201 ou 400 conforme o resultado.
});

Para testar, utilize uma ferramenta como Postman ou Insomnia para enviar uma requisição POST para /produto com os dados no corpo da requisição em formato JSON. Verifique o console do seu servidor para confirmar o registro dos dados e a resposta da API para validar o status code e a mensagem.

Próximos passos: explore a documentação oficial do Express.js para se aprofundar nos middlewares de body parsing e em outras funcionalidades essenciais para o desenvolvimento de APIs robustas. Considere também a implementação de bibliotecas de validação de dados mais avançadas, como o Joi ou o Yup.

🚀 Pronto para a próxima aula?

Continue sua jornada no desenvolvimento de APIs e domine Node.js & Express!

📚 Ver todas as aulas