Seu carrinho está vazio no momento!

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!