📄 Métodos HTTP
1. O que é a RESTful API?
Escrever uma RESTful API adota um conjunto padronizado de estilos de design para facilitar a comunicação entre diferentes sistemas na rede. Para seguir os princípios REST, a API deve ser previsível e fácil de entender. Como desenvolvedor frontend, o foco principal está nos seguintes três pontos:
- Caminho da URL (URL path): Determina o escopo da requisição do cliente, por exemplo:
/products: Pode retornar uma lista de produtos/products/abc: Fornece detalhes do produto com ID abc
- Métodos HTTP: Definem a forma especifica de execução:
GET: Usado para obter dadosPOST: Usado para criar novos dadosPUT: Usado para atualizar dados existentesDELETE: Usado para excluir dados
- Código de status (status code): Fornece uma indicação rápida sobre se a requisição foi bem-sucedida e, caso contrário, onde pode estar o problema. Os códigos de status comuns incluem:
200: Sucesso404: Recurso solicitado não encontrado500: Erro do servidor
2. Se o GET também pode transportar dados em uma requisição, por que devemos usar POST?
Já que o
GETtambém pode enviar requisições com dados, por que ainda precisamos usar oPOST?
Principalmente baseado nestas quatro considerações:
- Segurança: Como os dados do
GETsão anexados à URL, dados sensíveis ficam naturalmente expostos, enquanto oPOSTcoloca os dados nobodyda requisição, o que é relativamente mais seguro. - Limite de tamanho dos dados: Com o
GET, como navegadores e servidores têm limitações no comprimento da URL (embora varie ligeiramente entre navegadores, geralmente gira em torno de 2048 bytes), a quantidade de dados é limitada. Embora oPOSTnominalmente não tenha limite, na prática, para evitar ataques maliciosos com grandes volumes de dados, geralmente se utiliza algum middleware para limitar o tamanho dos dados, como obody-parserdoexpress. - Clareza semântica: Garante que os desenvolvedores possam entender claramente o propósito da requisição. O
GETé tipicamente usado para obter dados, enquanto oPOSTé mais adequado para criar ou atualizar dados. - Imutabilidade (Immutability): No protocolo HTTP, o método
GETé projetado como "seguro" -- independentemente de quantas requisições sejam feitas, não há preocupação de que isso cause alterações nos dados do servidor.
3. O que o método PUT faz no HTTP?
Qual é o propósito do método
PUT?
Tem principalmente dois usos:
- Atualizar dados que já existem (por exemplo, modificar informações de um usuário)
- Se os dados não existirem, criar novos dados
Example
const axios = require('axios');
async function updateUser(userId, newName) {
const url = `https://api.example.com/users/${userId}`; // api URL
const data = {
name: newName,
};
try {
const response = await axios.put(url, data); // Executa a requisição PUT
console.log('User updated:', response.data); // Exibe as informações do usuário atualizadas
} catch (error) {
console.log('Error updating user:', error); // Exibe a mensagem de erro
}
}
updateUser(1, 'Pitt Wu');