Depurando APIs em Python: Inspecionando Respostas HTTP com requests
Depurando APIs em Python: Inspecionando Respostas HTTP com requests
Inspecionar metadados de requisições HTTP é essencial para validar chamadas de API, verificar parâmetros de autenticação e depurar integrações do sistema. Utilizando a biblioteca
requests, você consegue acessar o código de status (status code) e todos os cabeçalhos (headers) de uma resposta web em poucas linhas de código.Python
import requests
def inspecionar_resposta_http(url: str):
# Realiza a requisição GET na URL informada
resposta = requests.get(url, timeout=5)
# Captura o código de status HTTP (ex: 200, 404, 500)
status = resposta.status_code
# Captura os cabeçalhos retornados pelo servidor
cabecalhos = resposta.headers
# Retorna as informações organizadas
return status, cabecalhos
# Exemplo prático de uso
if __name__ == "__main__":
url_alvo = "https://api.github.com"
status_code, headers = inspecionar_resposta_http(url_alvo)
print(f"Status HTTP: {status_code}")
print(f"Tipo de Conteúdo (Content-Type): {headers.get('content-type')}")
print(f"Servidor: {headers.get('server')}")
Pontos-chave
- Dicionário case-insensitive: O objeto
response.headersé um dicionário especial dorequestsque ignora diferenças entre maiúsculas e minúsculas nas chaves (ex:headers.get('content-type')eheaders.get('Content-Type')retornam o mesmo valor). - Método
.get()para evitar erros: Sempre utilize.get('nome-do-cabecalho')em vez da notação de colchetes para evitar que o script lance exceções (KeyError) caso um cabeçalho específico não seja enviado pelo servidor. - Validação rápida de status: Você pode validar se a requisição foi bem-sucedida usando o booleano
response.ok(retornaTruepara códigos entre 200 e 299) ou o métodoresponse.raise_for_status(), que lança uma exceção para códigos de erro (4xx ou 5xx). - Uso obrigatório de
timeout: Definir um tempo limite (ex:timeout=5) impede que a aplicação fique bloqueada indefinidamente aguardando a resposta de um servidor instável ou fora do ar.

Comentários
Postar um comentário