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 stringGET — 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) # 200DELETE — 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ückgegeben201 Created— POST hat eine neue Ressource erstellt204 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 fehlt401 Unauthorized— API-Schlüssel fehlt oder ist ungültig404 Not Found— Ressource existiert nicht429 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 Absturz502 Bad Gateway— Fehler beim vorgelagerten Dienst503 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 retriesAnfrage-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ältAuthorization: Bearer TOKEN— authentifiziert Ihre AnfrageAccept: application/json— teilt dem Server mit, dass Sie JSON als Antwort erwartenUser-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
- REST-API-Grundlagen für Agentenentwickler
- Authentifizierung: API-Keys und OAuth
- API-Responses und Fehler verarbeiten
- Rate Limiting und Retry-Logik