Gestion des erreurs

Introduction aux API en Python

Chris Ramakers

Engineering Manager

Codes d'état d'erreur

Erreurs « 4xx » côté client


  • Indiquent un problème du côté client
  • Causes fréquentes : requête invalide, échec d'authentification, etc.

Résolution : Corriger la requête

Erreurs « 5xx » côté serveur


  • Problème provenant du serveur
  • Causes fréquentes : surcharge, mauvaise configuration, erreur interne

Résolution : À corriger par l'administrateur de l'API

Introduction aux API en Python

Codes d'état d'erreur : exemples

Erreurs « 4xx » côté client


  • 401 Unauthorized - La requête n'a pas d'identifiants valides pour la ressource demandée
  • 404 Not Found - Le serveur ne trouve pas la ressource demandée
  • 429 Too Many Requests - Trop de requêtes envoyées dans un intervalle donné

Erreurs « 5xx » côté serveur


  • 500 Internal Server Error - Problème imprévu empêchant la réponse du serveur
  • 502 Bad Gateway - Le serveur d'API n'a pas pu joindre un autre serveur requis pour compléter la réponse
  • 504 Gateway Timeout - Le serveur (passerelle) n'a pas reçu la réponse du serveur amont à temps
Introduction aux API en Python

Traiter les erreurs

Erreurs d'API

import requests

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

r = requests.get(url)

if r.status_code >= 400: # Oups, un problème est survenu
else: # Tout est correct, traitons # la réponse

Erreurs de connexion

import requests

from requests.exceptions import ConnectionError
url = ''
try: r = requests.get(url) print(r.status_code)
except ConnectionError as conn_err: print(f'Erreur de connexion ! {conn_err}.') print(error)
Introduction aux API en Python

raise_for_status()

import requests

# 1 : Importer les exceptions de la bibliothèque requests from requests.exceptions import ConnectionError, HTTPError
try:
r = requests.get("http://api.music-catalog.com/albums")
# 2 : Activer le déclenchement d'exceptions pour les codes d'erreur r.raise_for_status()
print(r.status_code)
# 3 : Intercepter toute erreur de connexion except ConnectionError as conn_err: print(f'Erreur de connexion ! {conn_err}.')
# 4 : Intercepter les erreurs renvoyées par le serveur d'API except HTTPError as http_err: print(f'Erreur HTTP : {http_err}')
Introduction aux API en Python

Passons à la pratique !

Introduction aux API en Python

Preparing Video For Download...