REST = Representational State Transfer
 Es ist ein Architekturstil für Web-APIs, bei dem HTTP als Transportprotokoll genutzt wird.
 Eine REST-API stellt Ressourcen (z. B. User, Produkte, Bestellungen) über eindeutige URLs zur Verfügung.
Beispiel:
GET https://api.shop.com/products/42
Eigenschaften einer REST-API
- 
Ressourcenorientiert → Jede Entität hat eine eigene URL. 
- 
Stateless → Jeder Request enthält alle Infos (z. B. Authentifizierung). Der Server speichert keinen Zustand. 
- 
HTTP-Methoden werden semantisch genutzt: - 
GET→ Daten lesen
- 
POST→ neue Daten anlegen
- 
PUT/PATCH→ Daten ändern
- 
DELETE→ Daten löschen
 
- 
- 
Antwortformate: Meist JSON, manchmal auch XML oder YAML. 
Wie erstellt man eine REST-API?
Das hängt von der Programmiersprache und dem Framework ab.
 Ein generischer Ablauf:
- 
Datenmodell definieren - 
Welche Ressourcen gibt es? (z. B. User,Product,Order)
- 
Welche Felder haben sie? 
 
- 
- 
Endpoints entwerfen - 
Beispiel: - 
GET /users→ Liste aller Nutzer
- 
GET /users/{id}→ Details zu einem Nutzer
- 
POST /users→ neuen Nutzer anlegen
- 
PUT /users/{id}→ Nutzer aktualisieren
- 
DELETE /users/{id}→ Nutzer löschen
 
- 
 
- 
- 
Implementieren mit Framework 
 Beispiele:- 
Node.js/Express: app.get('/users', ...)
- 
Python/Flask oder FastAPI: @app.get("/users")
- 
Java/Spring Boot: @GetMapping("/users")
- 
.NET Web API: [HttpGet("users")]
 
- 
- 
Datenbank anbinden (z. B. SQL oder NoSQL). 
- 
Auth & Sicherheit - 
API-Keys, OAuth2 oder JWT für Authentifizierung. 
- 
HTTPS statt HTTP. 
 
- 
- 
Dokumentation & Testing - 
Swagger / OpenAPI für Dokumentation. 
- 
Postman oder cURL zum Testen. 
 
- 
Best Practices für Nutzung
Versionierung: /api/v1/users → verhindert Breaking Changes.
Konsistentes Design: gleiche Strukturen und Fehlercodes.
HTTP-Statuscodes korrekt nutzen:
- 
200 OK→ erfolgreich
- 
201 Created→ Ressource erstellt
- 
400 Bad Request→ falsche Eingabe
- 
401 Unauthorized→ Auth fehlt
- 
404 Not Found→ Ressource existiert nicht
- 
500 Internal Server Error→ Serverproblem
Pagination & Filtering für große Datenmengen (GET /users?page=2&limit=50).
Rate Limiting & Caching → Performance und Schutz.
OpenAPI/Swagger nutzen → erleichtert Client-Integration.






