Leodario.com

Leodario.com – Tudo sobre Tecnologia

Aula 5 – API JavaScript, Node.js e Express – HTTP Deep Dive – Métodos, headers, status codes

Imagem destacada da aula de API

Introdução (3 min)

Imagine um restaurante. Você, o cliente, interage com o garçom (o cliente HTTP, como seu navegador) para fazer um pedido (uma requisição HTTP). O garçom leva o pedido para a cozinha (o servidor), que prepara a comida (os dados). O garçom então retorna com seu prato (a resposta HTTP).

Compreender HTTP é essencial para construir APIs modernas, pois é a linguagem que permite a comunicação entre clientes e servidores. Nesta aula, vamos construir um servidor simples com Node.js e Express que responde a diferentes tipos de requisições HTTP.

No contexto Node.js/Express, o Express.js facilita o tratamento das requisições e respostas HTTP, permitindo que você crie APIs robustas e eficientes.

Conceito Fundamental (7 min)

HTTP (Hypertext Transfer Protocol) é o protocolo que possibilita a transferência de dados na web. Cada interação entre cliente e servidor envolve uma requisição e uma resposta, ambas contendo informações importantes.

Métodos HTTP (Verbos): Indicam o tipo de ação a ser realizada. Os mais comuns são:

    • GET: Solicita dados do servidor.
    • POST: Envia dados para o servidor para criar um novo recurso.
    • PUT: Atualiza um recurso existente no servidor.
    • DELETE: Remove um recurso do servidor.

Headers HTTP: Fornecem metadados sobre a requisição ou resposta, como tipo de conteúdo e informações de autenticação. Exemplos: Content-Type, Authorization.

Status Codes HTTP: Códigos numéricos que indicam o resultado da requisição. Exemplos: 200 OK, 404 Not Found, 500 Internal Server Error.

HTTP se integra com diversas tecnologias, como bancos de dados, sistemas de autenticação e frameworks front-end. Sua principal vantagem é a ubiquidade, sendo suportado por todos os navegadores e servidores web. Uma desvantagem é a sua natureza stateless, ou seja, cada requisição é independente das outras, necessitando de mecanismos para manter o estado entre as interações.

Implementação Prática (10 min)

const express = require('express');
const app = express();
const port = 3000;

// Middleware para analisar o corpo das requisições POST app.use(express.json());

app.get('/', (req, res) => { res.status(200).send('

Hello World!

📚 Informações da Aula

Curso: API Completo - Node.js & Express

Tempo estimado: 25 minutos

Pré-requisitos: JavaScript básico

'); // Responde com HTML e status 200 });

app.post('/usuario', (req, res) => { const novoUsuario = req.body; // Acessa os dados enviados no corpo da requisição console.log('Novo usuário:', novoUsuario); // Log para fins de depuração res.status(201).json({ message: 'Usuário criado com sucesso!', usuario: novoUsuario }); // Responde com JSON e status 201 (Created) });

app.put('/usuario/:id', (req, res) => { const id = req.params.id; // Acessa o parâmetro 'id' da rota const usuarioAtualizado = req.body; console.log(Usuário ${id} atualizado:, usuarioAtualizado); res.status(200).json({ message: 'Usuário atualizado com sucesso!', usuario: usuarioAtualizado }); });

app.delete('/usuario/:id', (req, res) => { const id = req.params.id; console.log(Usuário ${id} deletado.); res.status(204).send(); // Status 204 (No Content) indica sucesso sem corpo na resposta });

// Error handling básico app.use((err, req, res, next) => { console.error(err.stack); res.status(500).send('Algo deu errado!'); });

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

npm install express
node index.js

Exercício Hands-On (5 min)

Crie uma nova rota GET /produtos que retorna uma lista de produtos (um array de objetos JSON). Cada produto deve ter um id, nome e preco.

Solução:

// ... (código anterior)

app.get('/produtos', (req, res) => { const produtos = [ { id: 1, nome: 'Camiseta', preco: 25.00 }, { id: 2, nome: 'Calça Jeans', preco: 80.00 }, { id: 3, nome: 'Tênis', preco: 120.00 } ]; res.status(200).json(produtos); });

// ... (resto do código)

Teste a rota acessando http://localhost:3000/produtos no seu navegador ou utilizando uma ferramenta como Postman. Você deve ver a lista de produtos em formato JSON.

Troubleshooting: Certifique-se de que o servidor está rodando e que a rota foi adicionada corretamente. Verifique o console para detectar eventuais erros.

Próximos passos: Explore outros métodos HTTP, como PATCH para atualizações parciais, e aprofunde-se no tratamento de erros e melhores práticas de segurança.

🚀 Pronto para a próxima aula?

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

📚 Ver todas as aulas