Leer AI met Python · Les

De basis van REST-API's voor dataverzameling

HTTP GET/POST, headers, authenticatie (API key, Bearer) en JSON parsen met requests.

Les 1 van 413 stappen

De basis van REST-API's voor dataverzameling is een gratis Leer AI met Python-les op CoddyKit. Dit is les 1 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Leer AI met Python. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Leer AI met Python bevat in totaal 4 lessen.

Waarom API's belangrijk zijn voor AI

Modellen zijn niet beter dan de gegevens waarop ze zijn gebaseerd. Met web-API's kun je op aanvraag actuele, gestructureerde gegevens verzamelen — weer, prijzen, berichten op sociale media, openbare gegevensverzamelingen — in plaats van te vertrouwen op één statisch bestand.

In deze cursus gebruik je Python en de populaire bibliotheek requests om die gegevens op te halen en op te slaan.

Wat is een REST-API?

Een REST-API stelt bronnen beschikbaar via HTTP. Je stuurt een verzoek naar een URL (eindpunt) en krijgt gegevens terug, meestal als JSON.

De belangrijkste HTTP-methoden:

  • GET — gegevens lezen
  • POST — gegevens maken
  • PUT/PATCH — gegevens bijwerken
  • DELETE — gegevens verwijderen

Voor het verzamelen van gegevens gebruik je meestal GET.

Een eerste GET-verzoek

requests.get(url) verstuurt een GET-verzoek en retourneert een object van het type Response. Het antwoord bevat de status, headers en inhoud.

import requests

resp = requests.get("https://api.example.com/users")
print(resp.status_code)   # 200
print(resp.text[:200])    # raw body as a string

response.status_code controleren

De statuscode vertelt je of het verzoek is geslaagd:

  • 200 OK
  • 301/302 omleiding
  • 400 ongeldig verzoek
  • 401/403 authenticatieprobleem
  • 404 niet gevonden
  • 429 aanvraaglimiet bereikt
  • 500 serverfout
resp = requests.get(url)
if resp.status_code == 200:
    print("Success")
else:
    print("Failed:", resp.status_code)

JSON parseren met response.json()

De meeste API's retourneren JSON. response.json() parseert de inhoud automatisch naar Python-woordenboeken en -lijsten.

Parseer JSON niet handmatig — .json() handelt dit af en genereert een duidelijke fout als de inhoud geen geldige JSON is.

resp = requests.get("https://api.example.com/users/1")
data = resp.json()
print(data["name"])
print(data["email"])

Queryparameters verzenden met params

Filter en configureer verzoeken met queryparameters. Geef een woordenboek door aan params; requests bouwt de URL voor je op en verwerkt de codering.

In de URL wordt het voorbeeld ?city=London&units=metric.

params = {"city": "London", "units": "metric"}
resp = requests.get("https://api.example.com/weather", params=params)
print(resp.url)
print(resp.json())

Headers verzenden

Headers bevatten metagegevens zoals het inhoudstype, een user agent of een API-sleutel/token. Geef ze als een woordenboek door aan headers.

Veel API's vereisen een Authorization-header voor toegang.

headers = {
    "Authorization": "Bearer YOUR_TOKEN",
    "User-Agent": "my-data-collector/1.0",
}
resp = requests.get("https://api.example.com/data", headers=headers)
print(resp.json())

raise_for_status() voor robuuste code

Controleer statuscodes niet handmatig, maar roep resp.raise_for_status() aan. Dit genereert een HTTPError voor elk antwoord met status 4xx of 5xx, zodat fouten direct zichtbaar worden.

Gebruik try/except eromheen om fouten netjes af te handelen.

import requests

try:
    resp = requests.get(url, timeout=10)
    resp.raise_for_status()
    data = resp.json()
except requests.HTTPError as e:
    print("HTTP error:", e)
except requests.RequestException as e:
    print("Network error:", e)

Stel altijd een time-out in

Zonder een timeout kan een vastgelopen server je script voor altijd laten wachten. Geef altijd een time-out op, in seconden.

Bij lussen voor het verzamelen van gegevens die duizenden eindpunten aanspreken, is een ontbrekende time-out een veelvoorkomende oorzaak van vastgelopen taken.

resp = requests.get(url, timeout=10)   # give up after 10 seconds

Verbindingen hergebruiken met Session

Een requests.Session hergebruikt de onderliggende TCP-verbinding voor meerdere verzoeken en stelt je in staat headers één keer in te stellen. Voor veel aanroepen naar dezelfde host is dit veel sneller.

import requests

session = requests.Session()
session.headers.update({"Authorization": "Bearer YOUR_TOKEN"})

for uid in [1, 2, 3]:
    resp = session.get(f"https://api.example.com/users/{uid}")
    print(resp.json()["name"])

session.close()

Een nette hulpfunctie voor ophalen

Verpak dit patroon in een herbruikbare functie: stel een sessie in, pas een time-out toe, genereer fouten bij mislukte verzoeken en retourneer geparseerde JSON.

In de volgende lessen bouw je voor paginering en opslag voort op deze hulpfunctie.

def fetch_json(session, url, params=None):
    resp = session.get(url, params=params, timeout=10)
    resp.raise_for_status()
    return resp.json()

Korte controle: robuuste verzoeken

Je wilt dat je code automatisch een uitzondering genereert bij een antwoord met status 404 of 500.

Samenvatting: basisprincipes van REST-API's

Je kunt nu gegevens verzamelen via HTTP:

  • requests.get(url, params=..., headers=...) om verzoeken te doen
  • response.status_code en raise_for_status() om fouten te detecteren
  • response.json() om de inhoud te parseren
  • timeout om vastlopen te voorkomen
  • requests.Session om verbindingen en headers te hergebruiken

Hierna: gegevensverzamelingen verzamelen die uit veel pagina's bestaan.

Gratis beginnen

Leer Python met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
53
Lessen
225

Veelgestelde vragen

Is de les “De basis van REST-API's voor dataverzameling” gratis?

Ja — je kunt hier op het web alle 3 lessen van het leerpad Leer AI met Python, waaronder “De basis van REST-API's voor dataverzameling”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus Leer AI met Python bevat in totaal 4 lessen.

Wat leer ik in “De basis van REST-API's voor dataverzameling”?

HTTP GET/POST, headers, authenticatie (API key, Bearer) en JSON parsen met requests. Je oefent met Leer AI met Python door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met Leer AI met Python te beginnen?

Ervaring vooraf is niet nodig. Leer AI met Python op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 1 van 4.

Hoe lang duurt de les “De basis van REST-API's voor dataverzameling”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over Leer AI met Python?

Ja. Elke les over Leer AI met Python bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. De basis van REST-API's voor dataverzameling
  2. Grote datasets pagineren en verzamelen
  3. Verzamelde gegevens efficiënt opslaan
  4. Werken met openbare data-API's
← Terug naar Leer AI met Python