HTTP-Requestmethoden
HTTP-Requestmethoden (auch HTTP-Verben genannt) definieren die Art der Aktion, die für eine bestimmte Ressource ausgeführt werden soll. Sie sind ein zentraler Bestandteil jeder HTTP-Anfrage und bestimmen, wie Server die Anfrage interpretieren und verarbeiten sollen.
Die wichtigsten HTTP-Methoden
Abschnitt betitelt „Die wichtigsten HTTP-Methoden“Die GET-Methode fordert Daten von einer bestimmten Ressource an.
Zweck: Daten abrufen
Eigenschaften:
- Sollte keine Daten verändern (nur Lesen)
- Parameter werden in der URL übertragen
- Ergebnisse können gecached werden
- Kann in Lesezeichen gespeichert werden
Beispiel:
// Frontend mit Fetch API fetch('https://api.example.com/users') .then(response => response.json()) .then(data => console.log(data));
// Backend mit Express.js app.get('/users', (req, res) => { // Benutzer aus Datenbank abrufen res.json(users); });Die POST-Methode sendet Daten zur Verarbeitung an den Server.
Zweck: Neue Ressourcen erstellen
Eigenschaften:
- Daten werden im Request-Body gesendet
- Kann grössere Datenmengen übertragen
- Wird nicht gecached
- Kann nicht in Lesezeichen gespeichert werden
Beispiel:
// Frontend mit Fetch API fetch('https://api.example.com/users', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ name: 'Max Mustermann', email: 'max@example.com' }) });
// Backend mit Express.js app.post('/users', (req, res) => { const newUser = req.body; // Benutzer in Datenbank speichern res.status(201).json({ success: true, userId: newUser.id }); });Die PUT-Methode aktualisiert eine bestehende Ressource oder erstellt sie, falls sie nicht existiert.
Zweck: Ressourcen aktualisieren (vollständig)
Eigenschaften:
- Idempotent (mehrfaches Ausführen führt zum gleichen Ergebnis)
- Ersetzt die gesamte Ressource
- Daten werden im Request-Body gesendet
Beispiel:
// Frontend mit Fetch API fetch('https://api.example.com/users/123', { method: 'PUT', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ name: 'Max Müller', email: 'max@example.com' }) });
// Backend mit Express.js app.put('/users/:id', (req, res) => { const userId = req.params.id; const updatedUser = req.body; // Benutzer in Datenbank aktualisieren res.json({ success: true }); });Die DELETE-Methode entfernt eine bestimmte Ressource.
Zweck: Ressourcen löschen
Eigenschaften:
- Idempotent (Immer gleiche Antwort, auch wenn die Ressource bereits gelöscht wurde)
- Kein Request-Body erforderlich
Beispiel:
// Frontend mit Fetch API fetch('https://api.example.com/users/123', { method: 'DELETE' });
// Backend mit Express.js app.delete('/users/:id', (req, res) => { const userId = req.params.id; // Benutzer aus Datenbank löschen res.json({ success: true }); });Weitere HTTP-Methoden
Abschnitt betitelt „Weitere HTTP-Methoden“Die PATCH-Methode führt eine teilweise Aktualisierung einer Ressource durch.
Unterschied zu PUT: Aktualisiert nur die angegebenen Felder, nicht die gesamte Ressource
Beispiel:
fetch('https://api.example.com/users/123', { method: 'PATCH', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ email: 'neuemail@example.com' }) });Ähnlich wie GET, aber fordert nur die Header ohne den Body an.
- Zweck: Metainformationen abrufen, ohne Daten zu übertragen
- Anwendungsfall: Prüfen, ob eine Ressource existiert oder sich geändert hat
OPTIONS
Abschnitt betitelt „OPTIONS“Ermittelt die verfügbaren Kommunikationsoptionen für eine Ressource.
- Zweck: CORS-Anfragen (Cross-Origin Resource Sharing) unterstützen
- Anwendungsfall: Browsersicherheit, API-Dokumentation
Anwendungsfälle im MERN Stack
Abschnitt betitelt „Anwendungsfälle im MERN Stack“Im MERN Stack werden HTTP-Methoden hauptsächlich für die Kommunikation zwischen React-Frontend und Express-Backend verwendet:
Typische CRUD-Operationen
Abschnitt betitelt „Typische CRUD-Operationen“| Operation | HTTP-Methode | Endpunkt-Beispiel | Beschreibung |
|---|---|---|---|
| Create | POST | /api/users | Neuen Benutzer erstellen |
| Read | GET | /api/users/123 | Benutzer abrufen |
| Update | PUT/PATCH | /api/users/123 | Benutzer aktualisieren |
| Delete | DELETE | /api/users/123 | Benutzer löschen |
RESTful API-Design
Abschnitt betitelt „RESTful API-Design“Ein REST-konformes API-Design im MERN Stack nutzt HTTP-Methoden, um die Absicht deutlich zu machen:
- Ressourcen-orientiert: URLs identifizieren Ressourcen (z.B.
/users,/products) - Methoden für Aktionen: Die HTTP-Methode bestimmt die Aktion
- Zustandslos: Jede Anfrage enthält alle notwendigen Informationen
Übung: HTTP-Methoden in der Praxis
Abschnitt betitelt „Übung: HTTP-Methoden in der Praxis“Zusammenfassung
Abschnitt betitelt „Zusammenfassung“HTTP-Requestmethoden definieren, welche Aktion auf dem Server ausgeführt werden soll:
- GET: Daten abrufen ohne Änderungen vorzunehmen
- POST: Neue Ressourcen erstellen
- PUT: Ressourcen vollständig aktualisieren
- DELETE: Ressourcen löschen
- PATCH: Ressourcen teilweise aktualisieren
Diese Methoden sind besonders im MERN Stack wichtig, da sie die Basis für die Kommunikation zwischen dem React-Frontend und dem Express-Backend bilden und helfen, APIs nach REST-Prinzipien zu strukturieren.
Im nächsten Kapitel werden wir uns mit HTTP-Statuscodes befassen, die angeben, ob eine Anfrage erfolgreich war oder ein Fehler aufgetreten ist.