Enviar dados para um servidor é uma tarefa comum para desenvolvedores web, e há vários métodos para fazê-lo. Uma das maneiras mais eficientes de atualizar recursos existentes em um servidor é utilizando a requisição PUT. Hoje, iremos nos aprofundar em como enviar requisições PUT com dados JSON, garantindo que você tenha uma compreensão clara do processo. Além disso, mostraremos como aproveitar ferramentas como API e Apidog para agilizar seu fluxo de trabalho.
Entendendo as Requisições PUT
Para começar, vamos esclarecer o que é uma requisição PUT. No mundo das APIs, métodos HTTP são usados para realizar ações em recursos. PUT é um desses métodos, e é especificamente projetado para atualizar um recurso existente ou criar um novo se ele não existir.
Os Fundamentos das Requisições PUT
Imagine que você está trabalhando com um sistema de perfil de usuário. Você pode ter um recurso de usuário com detalhes como nome, e-mail e endereço. Se você quiser atualizar o endereço do usuário, você usaria uma requisição PUT.
Aqui está a estrutura geral de uma requisição PUT:
- URL: O endpoint onde o recurso está localizado.
- Headers: Metadados sobre a requisição, incluindo o tipo de conteúdo.
- Body: Os dados reais que você deseja enviar, frequentemente em formato JSON.
Por que JSON?
JSON (JavaScript Object Notation) é o formato mais comum para enviar dados pela web. É leve, fácil de ler e suportado pela maioria das linguagens de programação. Quando você envia uma requisição PUT com dados JSON, você está essencialmente atualizando o recurso com novas informações formatadas como um objeto JSON.
Preparando-se para Requisições PUT
Antes de mergulharmos na codificação, você precisa ter algumas coisas em seu lugar:
- Endpoint da API: A URL onde você enviará sua requisição PUT.
- Chave da API (se necessário): Algumas APIs requerem autenticação.
- Ferramenta ou Biblioteca: Para enviar requisições HTTP, como Apidog, Postman ou uma linguagem de programação com capacidades HTTP.
Ferramentas que Você Vai Precisar
Embora você possa usar qualquer cliente HTTP, Apidog é uma ferramenta fantástica que simplifica testes e desenvolvimento de APIs. Se você ainda não fez isso, baixe Apidog gratuitamente e instale-o em sua máquina. Isso facilitará sua vida ao lidar com requisições PUT.
Enviando Requisições PUT com Apidog
Vamos começar enviando uma requisição PUT usando Apidog. Siga estes passos:
- Abra o Apidog: Inicie o aplicativo e crie uma nova requisição

2. Defina o Método como PUT: Escolha PUT no menu suspenso.

3. Digite a URL: Insira o endpoint da API.

4. Adicione Dados JSON: Na seção do corpo, insira seus dados JSON.
Aqui está um exemplo de uma requisição PUT para atualizar o endereço de um usuário:
{
"name": "John Doe",
"email": "john.doe@example.com",
"address": "1234 Main St, Anytown, USA"
}
Quando você enviar esses dados, o servidor irá atualizar o recurso do usuário com as novas informações de endereço.

5. Envie a Requisição: Clique no botão “Enviar” e revise a resposta.

Escrevendo Requisições PUT em Código
Enquanto ferramentas como Apidog são ótimas para testes, você frequentemente precisará enviar requisições PUT diretamente do código da sua aplicação. Vamos ver como fazer isso em algumas linguagens de programação populares.
Usando JavaScript (Fetch API)
A Fetch API do JavaScript é uma maneira moderna de fazer requisições HTTP. Aqui está como enviar uma requisição PUT com dados JSON:
const url = 'https://api.example.com/user/1';
const data = {
name: 'John Doe',
email: 'john.doe@example.com',
address: '1234 Main St, Anytown, USA'
};
fetch(url, {
method: 'PUT',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(data)
})
.then(response => response.json())
.then(data => console.log('Sucesso:', data))
.catch(error => console.error('Erro:', error));
Usando Python (Requests Library)
A biblioteca Requests do Python é outra excelente ferramenta para fazer requisições HTTP. Aqui está como fazer isso:
import requests
import json
url = 'https://api.example.com/user/1'
data = {
'name': 'John Doe',
'email': 'john.doe@example.com',
'address': '1234 Main St, Anytown, USA'
}
response = requests.put(url, headers={'Content-Type': 'application/json'}, data=json.dumps(data))
print(response.status_code)
print(response.json())
Usando Java (HttpURLConnection)
A HttpURLConnection do Java é um pouco mais verbosa, mas cumpre o seu papel:
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;
public class PutRequestExample {
public static void main(String[] args) {
try {
URL url = new URL("https://api.example.com/user/1");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("PUT");
connection.setRequestProperty("Content-Type", "application/json; utf-8");
connection.setDoOutput(true);
String jsonInputString = "{\"name\": \"John Doe\", \"email\": \"john.doe@example.com\", \"address\": \"1234 Main St, Anytown, USA\"}";
try (OutputStream os = connection.getOutputStream()) {
byte[] input = jsonInputString.getBytes(StandardCharsets.UTF_8);
os.write(input, 0, input.length);
}
int responseCode = connection.getResponseCode();
System.out.println("Código de Resposta: " + responseCode);
// Ler a resposta (se necessário)
} catch (Exception e) {
e.printStackTrace();
}
}
}
Tratamento de Respostas
Quando você envia uma requisição PUT, receberá uma resposta do servidor. Essa resposta informará se sua requisição foi bem-sucedida ou se houve algum erro. Aqui estão alguns códigos de resposta comuns:
- 200 OK: A requisição foi bem-sucedida e o recurso foi atualizado.
- 201 Criado: O recurso foi criado com sucesso (se não existia).
- 400 Requisição Inválida: O servidor não conseguiu entender a requisição (por exemplo, JSON inválido).
- 401 Não Autorizado: A autenticação é necessária e falhou ou não foi fornecida.
- 404 Não Encontrado: O recurso solicitado não pôde ser encontrado.
- 500 Erro Interno do Servidor: Algo deu errado no servidor.
Exemplo de Tratamento de Resposta em JavaScript
Vamos revisitar nosso exemplo em JavaScript e adicionar o tratamento de resposta:
fetch(url, {
method: 'PUT',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(data)
})
.then(response => {
if (!response.ok) {
throw new Error('Resposta de rede não foi ok ' + response.statusText);
}
return response.json();
})
.then(data => console.log('Sucesso:', data))
.catch(error => console.error('Erro:', error));
Dicas para Enviar Requisições PUT com Dados JSON
Agora que você conhece os fundamentos, aqui estão algumas dicas para garantir que suas requisições PUT sejam eficazes:
Valide Seu JSON
Antes de enviar seus dados JSON, valide-os para garantir que estão formatados corretamente. Existem muitos validadores de JSON disponíveis online.
Use Cabeçalhos Apropriados
Sempre defina o cabeçalho Content-Type
como application/json
ao enviar dados JSON. Isso informa ao servidor que ele deve esperar JSON no corpo da requisição.
Trate Erros com Elegância
Implemente o tratamento de erros em seu código para gerenciar problemas potenciais como erros de rede ou respostas inválidas. Isso tornará sua aplicação mais robusta.
Teste com Ferramentas
Use ferramentas como Apidog para testar suas requisições PUT antes de implementá-las em seu código. Isso pode economizar muito tempo de depuração.
Conclusão
Enviar requisições PUT com dados JSON é uma habilidade fundamental para qualquer desenvolvedor web. Se você está atualizando perfis de usuário, modificando recursos ou sincronizando dados, compreender como formar essas requisições é crucial.
Lembre-se de baixar Apidog gratuitamente para tornar seus testes de API mais suaves e eficientes. Com as ferramentas e conhecimentos certos, você estará bem preparado para lidar com qualquer interação de API.
Feliz codificação!