Leodario.com

Leodario.com – Tudo sobre Tecnologia

Aula 14 – API JavaScript, Node.js e Express – Postman Fundamentals – Testando APIs profissionalmente

Imagem destacada da aula de API

Introdução (3 min)

Imagine um restaurante. O garçom é o mensageiro entre você e a cozinha (o servidor). Você faz um pedido (uma requisição) e o garçom o entrega à cozinha. A cozinha prepara seu prato (processa a requisição) e o garçom o traz de volta (resposta). Testar APIs é como ser um crítico gastronômico: você avalia se o pedido (requisição) foi entregue corretamente e se o prato (resposta) está de acordo com o esperado.

Testar APIs é fundamental para garantir a qualidade de aplicações modernas, especialmente em arquiteturas baseadas em microsserviços. Nesta aula, aprenderemos a usar o Postman para testar APIs de forma profissional, assegurando seu funcionamento correto e eficiente.

No contexto Node.js/Express, o Postman nos permite simular requisições aos nossos endpoints, verificando se as rotas, middlewares e controladores estão operando conforme o planejado. Isso é vital para um desenvolvimento robusto e confiável.

Conceito Fundamental (7 min)

O Postman é uma plataforma amplamente utilizada para desenvolvimento e teste de APIs. Ele possibilita enviar diferentes tipos de requisições (GET, POST, PUT, DELETE, etc.) a um servidor e analisar as respostas. A terminologia inclui Collections (conjuntos de requisições), Environments (variáveis de ambiente), Tests (scripts para validar respostas), e Pre-request Scripts (scripts executados antes da requisição).

Em produção, o Postman é usado para testes de integração, testes de carga, monitoramento de APIs e documentação automatizada. Ele se integra com diversas tecnologias, como frameworks de teste (Mocha, Chai), sistemas de CI/CD (Jenkins, GitLab CI) e ferramentas de monitoramento (New Relic).

A principal vantagem do Postman é sua interface intuitiva e recursos poderosos. Como desvantagem, a versão completa possui funcionalidades pagas, embora a versão gratuita seja suficiente para a maioria das tarefas.

Implementação Prática (10 min)

Vamos criar um servidor Express simples e testá-lo com o Postman.

// server.js
const express = require('express');
const app = express();
const port = 3000;

app.get('/hello', (req, res) => { res.json({ message: 'Olá, mundo!' }); });

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

Execute o servidor com node server.js.

No Postman:

    • Crie uma nova requisição GET para http://localhost:3000/hello.
    • Clique em “Send”.
    • Verifique o corpo da resposta, que deve ser { "message": "Olá, mundo!" }.

Vamos adicionar um teste simples:

// Aba "Tests" no Postman
pm.test("Status code is 200", function () {
  pm.response.to.have.status(200);
});

pm.test("Response body contains 'Olá, mundo!'", function () { pm.expect(pm.response.json().message).to.eql("Olá, mundo!"); });

Execute a requisição novamente e verifique os testes na aba “Test Results”.

Exercício Hands-On (5 min)

Crie um novo endpoint POST /user que recebe um JSON com nome e email e retorna o mesmo JSON com um ID gerado aleatoriamente. Teste com o Postman enviando um JSON no corpo da requisição e validando a resposta.

Solução:

// server.js (adicione este código)
app.use(express.json()); // Middleware para processar JSON

app.post('/user', (req, res) => { const { nome, email } = req.body; const id = Math.floor(Math.random() * 1000); res.json({ id, nome, email }); });

No Postman, crie uma requisição POST para http://localhost:3000/user. No corpo (Body), selecione “raw” e “JSON”. Insira um JSON como { "nome": "João", "email": "[email protected]" }. Execute a requisição e valide a resposta.

Troubleshooting: Certifique-se de que o middleware express.json() está sendo usado. Verifique se o corpo da requisição está formatado corretamente como JSON. Observe o console do servidor para eventuais erros.

Próximos passos: Explore as outras funcionalidades do Postman, como Collections, Environments e Pre-request Scripts. Aprenda a usar bibliotecas de asserção como Chai.js para testes mais complexos.

🚀 Pronto para a próxima aula?

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

📚 Ver todas as aulas