Fehlerbehandlung

Einführung in APIs mit Python

Chris Ramakers

Engineering Manager

Fehlerstatuscodes

4xx Client-Fehler


  • Weisen auf Probleme beim Client hin
  • Häufige Ursachen: Falsche Requests, Authentifizierungsfehler usw.

Lösung: Request korrigieren

5xx Server-Fehler


  • Entstehen durch Probleme auf dem Server
  • Häufige Ursachen: Überlastung, Fehlkonfiguration, interne Fehler

Lösung: Muss vom API-Admin behoben werden

Einführung in APIs mit Python

Fehlerstatuscodes: Beispiele

4xx Client-Fehler


  • 401 Unauthorized - Dem Request fehlen gültige Anmeldedaten für die Ressource
  • 404 Not Found - Der Server findet die angeforderte Ressource nicht
  • 429 Too Many Requests - Zu viele Requests in kurzer Zeit gesendet

5xx Server-Fehler


  • 500 Internal Server Error - Unerwarteter Fehler, der eine Antwort verhindert
  • 502 Bad Gateway - Der API-Server konnte den benötigten Upstream-Server nicht erreichen
  • 504 Gateway Timeout - Der Gateway-Server erhielt rechtzeitig keine Antwort vom Upstream
Einführung in APIs mit Python

Fehler behandeln

API-Fehler

import requests

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

r = requests.get(url)

if r.status_code >= 400: # Upps, da lief etwas schief
else: # Alles gut, weiter mit der Response # arbeiten

Verbindungsfehler

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)
Einführung in APIs mit Python

raise_for_status()

import requests

# 1: Ausnahmen aus requests.exceptions importieren from requests.exceptions import ConnectionError, HTTPError
try:
r = requests.get("http://api.music-catalog.com/albums")
# 2: Exceptions bei Fehler-Statuscodes auslösen r.raise_for_status()
print(r.status_code)
# 3: Verbindungsfehler abfangen except ConnectionError as conn_err: print(f'Connection Error! {conn_err}.')
# 4: Fehlerantworten vom API-Server abfangen except HTTPError as http_err: print(f'HTTP error occurred: {http_err}')
Einführung in APIs mit Python

Lass uns üben!

Einführung in APIs mit Python

Preparing Video For Download...