1
resposta

[Dúvida] POST e GET não estão funcionando no Postman

Olá! Ao seguir o passo a passo da aula, na hora de usar o Postman, o body só apresenta a frase "Entrei na rota livros" mesmo eu fazendo o POST e GET conforme as orientações da aula. Ou seja, o livro não está sendo adicionado e nem consigo consultar os livros registrados. Eu instalei o Postman Agent, Postman para Desktop e o código está dessa forma:

app.js

import express from "express";

const app = express();
app.use(express.json());

const livros = [
  {
    id: 1,
    titulo: "O Senhor dos Anéis"
  },
  {
    id: 2,
    titulo: "O Hobbit"
  }
]

function buscaLivro(id) {
    return livros.findIndex(livro => {
        return livro.id === Number(id);
    })
}

app.get("/livros/:id", (req, res) => {
    const index = buscaLivro(req.params.id);
    res.status(200).json(livros[index]);
});

app.post("/livros", (req, res) => {
    livros.push(req.body);
    res.status(201).send("livro cadastrado com sucesso");
});

app.put("/livros/:id", (req, res) => {
    const index = buscaLivro(req.params.id);
    livros[index].titulo = req.body.titulo;
    res.status(200).json(livros);
   });

   export default app;

Onde será que estou errando?

1 resposta

Olá, Paulo! Tudo bem?

Pelo fato da sua API está retornando sempre a mesma mensagem "Entrei na rota livros", sugere que talvez o código que manipula as rotas GET e POST não esteja sendo executado como esperado. Vamos verificar algumas coisas:

  1. Verifique as Rotas: Certifique-se de que você está usando as rotas corretas no Postman. Para o POST, a URL deve ser http://localhost:3000/livros e para o GET, se você quer buscar todos os livros, também deve ser http://localhost:3000/livros. Se estiver buscando um livro específico, use http://localhost:3000/livros/:id.

  2. Middleware JSON: Você já adicionou app.use(express.json());, o que é ótimo, pois isso permite que o Express processe o corpo das requisições JSON. Certifique-se de que essa linha está realmente antes das definições das rotas.

  3. Verifique o Corpo da Requisição no Postman: Quando você faz um POST, certifique-se de que o corpo da requisição está no formato JSON e que você selecionou a opção "raw" e "JSON" no Postman. Por exemplo:

    {
      "id": 3,
      "titulo": "O Silmarillion"
    }
    
  4. Verifique o Código do Servidor: Certifique-se de que o servidor está rodando e que não há erros no terminal. Você pode usar o nodemon para reiniciar automaticamente o servidor ao salvar alterações no código.

  5. Teste com Mensagens de Log: Adicione alguns console.log() nas funções das rotas para ver se elas estão sendo chamadas corretamente. Por exemplo:

    app.post("/livros", (req, res) => {
        console.log("Recebido POST em /livros");
        console.log("Corpo da requisição:", req.body);
        livros.push(req.body);
        res.status(201).send("Livro cadastrado com sucesso");
    });
    

Se após essas verificações o problema persistir, pode ser útil revisar o código completo, então peço que compartilhe ele usando o GitHub ou Drive do Google.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.