0Pricing
AI Agents · Lektion

REST-API-Grundlagen für Agentenentwickler

HTTP-Methoden, Statuscodes, Header sowie das JSON-Format für Requests und Responses.

REST-API-Grundlagen für Agentenentwickler ist eine kostenlose AI Agents-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des AI Agents-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der AI Agents-Kurs umfasst insgesamt 4 Lektionen.

Was ist eine HTTP-Anfrage?

Jeder Agent, der eine Verbindung zu einem externen Dienst herstellt, verwendet HTTP – die Sprache des Webs. Eine HTTP-Anfrage besteht aus drei zentralen Bestandteilen: einer Methode, einer URL und optionalen Headern sowie einem Body.

Stellen Sie sich die Methode als Verb vor, das dem Server mitteilt, was Sie tun möchten, und die URL als Adresse der Ressource.

import requests

# A simple GET request to a public API
response = requests.get('https://api.example.com/users')
print(response.status_code)  # 200
print(response.text)          # raw JSON string

GET — Daten abrufen

GET ruft Daten von einem Server ab. Die Methode sollte niemals etwas verändern. Agenten verwenden GET, um Benutzerprofile zu lesen, Aufgabenlisten abzurufen oder Konfigurationsdaten zu laden.

Sie können Parameter als Query-String in der URL über das Argument params übergeben.

import requests

# Fetch users filtered by role
params = {'role': 'admin', 'page': 1, 'limit': 10}
response = requests.get(
    'https://api.example.com/users',
    params=params
)
# URL becomes: /users?role=admin&page=1&limit=10
data = response.json()
print(data['users'])

POST — Ressourcen erstellen

POST sendet Daten an den Server, um eine neue Ressource zu erstellen. Agenten verwenden POST, um Aufgaben zu übermitteln, Nachrichten zu senden oder Aktionen auszulösen. Die Daten stehen als JSON im Request-Body.

Setzen Sie immer den Header Content-Type: application/json – die meisten APIs erfordern ihn.

import requests
import json

payload = {
    'title': 'Research competitors',
    'assignee': 'agent-001',
    'priority': 'high'
}

response = requests.post(
    'https://api.example.com/tasks',
    json=payload  # sets Content-Type automatically
)
print(response.status_code)  # 201 Created
new_task = response.json()
print('Created task ID:', new_task['id'])

PUT und PATCH — Daten aktualisieren

PUT ersetzt eine gesamte Ressource durch neue Daten. PATCH aktualisiert nur bestimmte Felder. Agenten verwenden PUT, wenn ihnen das vollständig aktualisierte Objekt vorliegt, und PATCH für teilweise Änderungen, etwa zur Aktualisierung des Status einer Aufgabe.

import requests

task_id = '42'

# PATCH: only update the status field
response = requests.patch(
    f'https://api.example.com/tasks/{task_id}',
    json={'status': 'completed'}
)
print(response.status_code)  # 200

# PUT: replace the whole task object
full_task = {
    'title': 'Research competitors',
    'assignee': 'agent-001',
    'priority': 'low',
    'status': 'completed'
}
response = requests.put(
    f'https://api.example.com/tasks/{task_id}',
    json=full_task
)
print(response.status_code)  # 200

DELETE — Ressourcen entfernen

DELETE entfernt eine Ressource vom Server. Agenten verwenden DELETE, um temporäre Daten zu bereinigen, verarbeitete Aufgaben zu entfernen oder geplante Jobs abzubrechen. Die meisten DELETE-Anfragen haben keinen Body.

Eine erfolgreiche Löschung gibt typischerweise 204 No Content zurück – die Antwort enthält keinen Body.

import requests

task_id = '42'

response = requests.delete(
    f'https://api.example.com/tasks/{task_id}'
)

if response.status_code == 204:
    print('Task deleted successfully')
elif response.status_code == 404:
    print('Task not found — already deleted?')
else:
    print('Unexpected status:', response.status_code)

Statuscodes: 2xx-Erfolg

Statuscodes zeigen Ihrem Agenten, ob eine Anfrage erfolgreich war oder fehlgeschlagen ist. Der 2xx-Bereich bedeutet Erfolg:

  • 200 OK — GET/PUT/PATCH hat Daten zurückgegeben
  • 201 Created — POST hat eine neue Ressource erstellt
  • 204 No Content — DELETE war erfolgreich, es wurde kein Body zurückgegeben

Prüfen Sie immer den Statuscode, bevor Sie den Antwort-Body verarbeiten.

import requests

response = requests.post(
    'https://api.example.com/tasks',
    json={'title': 'New task'}
)

if response.status_code == 201:
    task = response.json()
    print('Created:', task['id'])
elif response.status_code == 200:
    print('Updated existing resource')
else:
    print('Unexpected code:', response.status_code)

Statuscodes: 4xx-Clientfehler

4xx-Fehler bedeuten, dass Ihr Agent eine fehlerhafte Anfrage gesendet hat. Häufige Fehler:

  • 400 Bad Request — ungültiges JSON oder erforderliches Feld fehlt
  • 401 Unauthorized — API-Schlüssel fehlt oder ist ungültig
  • 404 Not Found — Ressource existiert nicht
  • 429 Too Many Requests — Rate-Limit überschritten

Ihr Agent muss die Anfrage korrigieren, statt sie blind erneut zu senden.

import requests

response = requests.get(
    'https://api.example.com/tasks/9999',
    headers={'Authorization': 'Bearer YOUR_KEY'}
)

if response.status_code == 401:
    print('AUTH ERROR: Check your API key')
elif response.status_code == 404:
    print('Task not found')
elif response.status_code == 429:
    retry_after = response.headers.get('Retry-After', 60)
    print(f'Rate limited. Wait {retry_after}s')
elif response.status_code == 400:
    print('Bad request:', response.json().get('error'))

Statuscodes: 5xx-Serverfehler

5xx-Fehler bedeuten, dass auf der Serverseite etwas schiefgelaufen ist – Ihr Agent hat nichts falsch gemacht. Häufige Fehler:

  • 500 Internal Server Error — Serverfehler oder Absturz
  • 502 Bad Gateway — Fehler beim vorgelagerten Dienst
  • 503 Service Unavailable — Server überlastet oder nicht verfügbar

Nach kurzer Wartezeit können Sie diese Anfragen gefahrlos erneut senden.

import requests
import time

def get_with_retry(url, headers, max_retries=3):
    for attempt in range(max_retries):
        response = requests.get(url, headers=headers)
        if response.status_code < 500:
            return response  # success or client error
        wait = 2 ** attempt
        print(f'Server error {response.status_code}, retrying in {wait}s...')
        time.sleep(wait)
    return response  # return last response after retries

Anfrage-Header

Header übertragen bei jeder Anfrage Metadaten. Die wichtigsten Header für Agenten:

  • Content-Type: application/json — teilt dem Server mit, dass Ihr Body JSON enthält
  • Authorization: Bearer TOKEN — authentifiziert Ihre Anfrage
  • Accept: application/json — teilt dem Server mit, dass Sie JSON als Antwort erwarten
  • User-Agent — identifiziert Ihren Client (manche APIs erfordern ihn)
import requests

headers = {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer sk-proj-abc123xyz',
    'Accept': 'application/json',
    'User-Agent': 'MyAgent/1.0'
}

response = requests.post(
    'https://api.example.com/analyze',
    headers=headers,
    json={'text': 'Analyze this document'}
)

print(response.json())

JSON-Body für Anfrage und Antwort

Die meisten modernen APIs tauschen Daten als JSON aus. Verwenden Sie beim Senden json=payload in requests; dadurch werden die Daten serialisiert und Header automatisch gesetzt. Rufen Sie beim Empfangen response.json() auf, um den Body in ein Python-Dict zu parsen.

Prüfen Sie immer, ob die erwarteten Schlüssel vorhanden sind, bevor Sie auf sie zugreifen.

import requests

# Send JSON body
response = requests.post(
    'https://api.example.com/summarize',
    json={
        'content': 'Long article text here...',
        'max_length': 150,
        'format': 'bullet_points'
    }
)

# Parse JSON response
result = response.json()

# Always check keys exist
summary = result.get('summary', 'No summary returned')
tokens_used = result.get('usage', {}).get('total_tokens', 0)

print('Summary:', summary)
print('Tokens used:', tokens_used)

Alles zusammenführen

Ein gut geschriebener Agent kapselt API-Aufrufe mit Methodenauswahl, korrekten Headern, Statuscode-Prüfung und JSON-Parsing in einer übersichtlichen Hilfsfunktion. Dadurch wird jede API-Interaktion einheitlich und leicht zu debuggen.

Verwenden Sie ein Session-Objekt, um Verbindungen wiederzuverwenden und Header über mehrere Anfragen hinweg gemeinsam zu nutzen.

import requests

class APIClient:
    def __init__(self, base_url, api_key):
        self.base_url = base_url
        self.session = requests.Session()
        self.session.headers.update({
            'Authorization': f'Bearer {api_key}',
            'Content-Type': 'application/json',
            'Accept': 'application/json'
        })

    def get(self, path, params=None):
        r = self.session.get(f'{self.base_url}{path}', params=params)
        r.raise_for_status()
        return r.json()

    def post(self, path, payload):
        r = self.session.post(f'{self.base_url}{path}', json=payload)
        r.raise_for_status()
        return r.json()

# Usage
client = APIClient('https://api.example.com', 'sk-proj-abc123')
tasks = client.get('/tasks', params={'status': 'open'})
new_task = client.post('/tasks', {'title': 'Write report'})

Schnelltest: HTTP-Methoden

Testen Sie Ihr Verständnis von HTTP-Methoden und Statuscodes.

Zusammenfassung der HTTP-Grundlagen

Sie kennen nun die HTTP-Grundlagen, auf die sich jeder Agent stützt:

  • GET ruft ab, POST erstellt, PUT/PATCH aktualisiert, DELETE entfernt
  • 2xx = Erfolg, 4xx = Fehler Ihres Agenten, 5xx = Fehler des Servers
  • Header übertragen Authentifizierung (Authorization: Bearer) und Format (Content-Type: application/json)
  • Verwenden Sie response.json(), um den Body zu parsen, und .get(), um sicher auf Felder zuzugreifen
  • Ein Session-Objekt verwendet Header und Verbindungen für mehrere Anfragen gemeinsam

Mit diesen Grundlagen können Sie Ihren Agenten sicher mit jeder REST-API verbinden.

Häufig gestellte Fragen

Ist die Lektion „REST-API-Grundlagen für Agentenentwickler“ kostenlos?

Ja — der vollständige Text von „REST-API-Grundlagen für Agentenentwickler“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des AI Agents-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der AI Agents-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „REST-API-Grundlagen für Agentenentwickler“?

HTTP-Methoden, Statuscodes, Header sowie das JSON-Format für Requests und Responses. Du übst AI Agents mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um AI Agents zu starten?

Keine Vorkenntnisse erforderlich. AI Agents auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 4.

Wie lange dauert die Lektion „REST-API-Grundlagen für Agentenentwickler“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser AI Agents-Lektion Code schreiben und ausführen?

Ja. Jede AI Agents-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. REST-API-Grundlagen für Agentenentwickler
  2. Authentifizierung: API-Keys und OAuth
  3. API-Responses und Fehler verarbeiten
  4. Rate Limiting und Retry-Logik
← Zurück zu AI Agents