Capítulo 20: Projeto Final - API de Brawlers (Parte 2) 🌵⭐

Chegamos ao último capítulo! Vamos finalizar nossa API adicionando a capacidade de cadastrar novos Brawlers usando o método POST.


📖 Adicionando Dados (POST)

Até agora só lemos dados. Para enviar novos dados para o servidor, usamos o método POST. O Express precisa do middleware express.json() para entender esses dados.


📖 Exemplo Guiado: Cadastro de Novo Brawler

Vamos adicionar a rota POST ao nosso arquivo.

  1. Crie o arquivo brawlers_completo.js na pasta src/:
const express = require('express');
const app = express();
 
app.use(express.json());
 
const brawlers = [
    { id: 1, nome: "Shelly", classe: "Destruidora" },
    { id: 2, nome: "Colt", classe: "Tiro Preciso" }
];
 
// Listar todos
app.get('/brawlers', (req, res) => {
    res.json(brawlers);
});
 
// Cadastrar novo
app.post('/brawlers', (req, res) => {
    const novoBrawler = req.body;
    
    // Gerando um ID simples
    novoBrawler.id = brawlers.length + 1;
    
    // Adicionando na lista
    brawlers.push(novoBrawler);
    
    res.status(201).send(`Brawler ${novoBrawler.nome} cadastrado com sucesso!`);
});
 
app.listen(3000, () => {
    console.log("API Completa rodando em http://localhost:3000");
});

🕹️ Como Executar e Testar no VS Code

Para testar o POST, você não pode usar apenas o navegador (que só faz GET por padrão).

  1. Rode o servidor: node brawlers_completo.js
  2. Use a extensão Thunder Client no VS Code ou o comando curl no terminal:
curl -X POST -H "Content-Type: application/json" -d '{"nome":"Leon","classe":"Assassino"}' http://localhost:3000/brawlers

📊 Ilustração Visual: Fluxo do POST

Veja como o dado entra na nossa lista:

graph LR
    A["Cliente: JSON"] -->|POST| B[🛡️ express.json]
    B -->|req.body| C[Array brawlers]

🛠️ Prática Obrigatória 1: Verificação de Nome

Na rota POST, adicione uma verificação: se o usuário tentar cadastrar um Brawler sem o campo nome, responda com erro (status 400) e a mensagem “O nome do Brawler e obrigatorio!“.


🔑 Gabarito de Código

Prática 1: Rota POST com validação

app.post('/brawlers', (req, res) => {
    const novoBrawler = req.body;
    
    if (!novoBrawler.nome) {
        return res.status(400).send("O nome do Brawler e obrigatorio!");
    }
    
    novoBrawler.id = brawlers.length + 1;
    brawlers.push(novoBrawler);
    
    res.status(201).send(`Brawler ${novoBrawler.nome} cadastrado com sucesso!`);
});

📤 Instruções de Entrega (GitHub Desktop + Microsoft Teams)

(Siga o padrão estabelecido no Guia)


Parabéns por concluir o curso de JavaScript com Node.js! Você agora sabe criar APIs reais!


Capitulo Anterior