Gestion des erreurs

Introduction aux API en Python

Chris Ramakers

Engineering Manager

Codes d’état d’erreur

4xx Erreurs client


  • Indiquer les problèmes côté client
  • Causes courantes : Mauvaises requêtes, échecs authentification, etc…

Résolution : corriger la requête

5xx Erreurs serveur


  • Provient de problèmes sur serveur
  • Causes courantes : Serveur surchargé, erreurs configuration serveur, erreurs internes

Résolution : doit être corrigé par administrateur API

Introduction aux API en Python

Codes d’état d’erreur : exemples

4xx Erreurs client


  • 401 Unauthorized - Requête ne contient pas d’ID d’authentification valides pour ressource demandée
  • 404 Not Found - Indique que serveur ne peut pas trouver ressource demandée
  • 429 Too Many Requests - Client a envoyé trop de requêtes sur période donnée

5xx Erreurs serveur


  • 500 Internal Server Error - Serveur a rencontré problème inattendu qui l’empêche de répondre
  • 502 Bad Gateway - Serveur API n’a pas pu joindre autre serveur nécessaire pour terminer réponse
  • 504 Gateway Timeout - Serveur (qui agit comme une passerelle) n’a pas reçu réponse serveur en amont à temps
Introduction aux API en Python

Gérer les erreurs

Erreurs API

import requests

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

r = requests.get(url)

if r.status_code >= 400: # Oops, something went wrong
else: # All fine, let's do something # with the response

Erreurs 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'Connection Error! {conn_err}.') print(error)
Introduction aux API en Python

raise_for_status()

import requests

# 1: Import the requests library exceptions from requests.exceptions import ConnectionError, HTTPError
try:
r = requests.get("http://api.music-catalog.com/albums")
# 2: Enable raising exceptions for returned error statuscodes r.raise_for_status()
print(r.status_code)
# 3: Catch any connection errors except ConnectionError as conn_err: print(f'Connection Error! {conn_err}.')
# 4: Catch error responses from the API server except HTTPError as http_err: print(f'HTTP error occurred: {http_err}')
Introduction aux API en Python

Passons à la pratique !

Introduction aux API en Python

Preparing Video For Download...