Foutafhandeling

Introductie tot API's in Python

Chris Ramakers

Engineering Manager

Foutstatuscodes

4xx Clientfouten


  • Duiden op problemen aan de clientzijde
  • Veelvoorkomende oorzaken: ongeldige requests, authenticatiefouten, enz.

Oplossing: Corrigeer de request

5xx Serverfouten


  • Ontstaan door problemen op de server
  • Veelvoorkomende oorzaken: server overbelast, configuratiefouten, interne fouten

Oplossing: Moet door de API-beheerder worden opgelost

Introductie tot API's in Python

Voorbeelden van foutstatuscodes

4xx Clientfouten


  • 401 Unauthorized - De request mist geldige authenticatie voor de gevraagde resource
  • 404 Not Found - De server kan de gevraagde resource niet vinden
  • 429 Too Many Requests - Te veel requests in een bepaalde tijd

5xx Serverfouten


  • 500 Internal Server Error - Onverwacht probleem waardoor de server niet kan antwoorden
  • 502 Bad Gateway - De API-server kon een andere benodigde server niet bereiken
  • 504 Gateway Timeout - De gateway-server kreeg niet op tijd een reactie van de upstream-server
Introductie tot API's in Python

Fouten afhandelen

API-fouten

import requests

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

r = requests.get(url)

if r.status_code >= 400: # Oeps, er ging iets mis
else: # Alles oké, doe iets # met de response

Verbindingsfouten

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)
Introductie tot API's in Python

raise_for_status()

import requests

# 1: Importeer de exceptions van de requests-bibliotheek from requests.exceptions import ConnectionError, HTTPError
try:
r = requests.get("http://api.music-catalog.com/albums")
# 2: Activeer het gooien van exceptions bij foutstatuscodes r.raise_for_status()
print(r.status_code)
# 3: Vang verbindingsfouten op except ConnectionError as conn_err: print(f'Connection Error! {conn_err}.')
# 4: Vang foutresponsen van de API-server op except HTTPError as http_err: print(f'HTTP error occurred: {http_err}')
Introductie tot API's in Python

Laten we oefenen!

Introductie tot API's in Python

Preparing Video For Download...