Gestión de errores

Introducción a las API en Python

Chris Ramakers

Engineering Manager

Códigos de estado de error

Errores 4xx del cliente


  • Indican problemas del lado del cliente
  • Causas comunes: solicitudes inválidas, fallos de autenticación, etc.

Solución: Corrige la solicitud

Errores 5xx del servidor


  • Surgen por problemas en el servidor
  • Causas comunes: sobrecarga, errores de configuración, errores internos

Solución: Debe corregirlo el administrador del API

Introducción a las API en Python

Códigos de error: ejemplos

Errores 4xx del cliente


  • 401 Unauthorized - La solicitud no tiene credenciales válidas para el recurso solicitado
  • 404 Not Found - El servidor no encuentra el recurso solicitado
  • 429 Too Many Requests - El cliente ha enviado demasiadas solicitudes en un periodo de tiempo

Errores 5xx del servidor


  • 500 Internal Server Error - El servidor tuvo un problema inesperado que impide responder
  • 502 Bad Gateway - El servidor del API no pudo contactar otro servidor necesario para completar la respuesta
  • 504 Gateway Timeout - El servidor (puerta de enlace) no recibió a tiempo respuesta del servidor ascendente
Introducción a las API en Python

Gestión de errores

Errores del API

import requests

url = 'http://api.music-catalog.com/albums'

r = requests.get(url)

if r.status_code >= 400: # Ups, algo falló
else: # Todo bien, hagamos algo # con la respuesta

Errores de conexión

import requests

from requests.exceptions import ConnectionError
url = ''
try: r = requests.get(url) print(r.status_code)
except ConnectionError as conn_err: print(f'Connection Error! {conn_err}.') print(error)
Introducción a las API en Python

raise_for_status()

import requests

# 1: Importa las excepciones de la librería requests from requests.exceptions import ConnectionError, HTTPError
try:
r = requests.get("http://api.music-catalog.com/albums")
# 2: Activa el lanzamiento de excepciones para códigos de error r.raise_for_status()
print(r.status_code)
# 3: Captura errores de conexión except ConnectionError as conn_err: print(f'Connection Error! {conn_err}.')
# 4: Captura respuestas de error del servidor API except HTTPError as http_err: print(f'HTTP error occurred: {http_err}')
Introducción a las API en Python

¡Vamos a practicar!

Introducción a las API en Python

Preparing Video For Download...