Representational State Transfer (REST)
REST ist ein Architekturstil, der die Kommunikation zwischen Client und Server über das HTTP-Protokoll definiert.
Klassifikation
- KomplexitätMittel
- AuswirkungTechnisch
- EntscheidungstypDesign
- OrganisationsreifeFortgeschritten
Technischer Kontext
Prinzipien & Ziele
Use Cases & Szenarien
Kompromisse
- Security vulnerabilities
- Datenverlust bei fehlerhaften Aufrufen
- Unzureichende Fehlerbehandlung
- Verwendung von Standard-HTTP-Methoden
- Dokumentation der API für Benutzer
- Einhaltung von Sicherheitspraktiken
I/O & Ressourcen
- API-Spezifikationen
- Serverressourcen
- Sicherheitszertifikate
- API-Dokumentation
- Zugreifbare Endpunkte
- API-Statistiken
Beschreibung
REST ist ein weit verbreiteter Architekturstil, der auf dem Prinzip der Ressourcenorientierung basiert. Es ermöglicht die Interaktion zwischen Client und Server über standardisierte HTTP-Methoden. Anwendungen, die RESTful-Prinzipien folgen, weisen oft hohe Skalierbarkeit und Flexibilität auf.
✔Vorteile
- Hohe Skalierbarkeit
- Einfache Nutzung
- Trennung von Anliegen
✖Limitationen
- Kann komplexe Datenoperationen erschweren
- Firewall- und Sicherheitsprobleme
- Abhängigkeit von HTTP
Trade-offs
Metriken
- Zugriffszeiten
Messung der Zeit, die benötigt wird, um auf Ressourcen zuzugreifen.
- Fehlerquoten
Messung der Häufigkeit von Fehlern bei API-Anrufen.
- Nutzeranfragen pro Sekunde
Anzahl der Anfragen, die pro Zeiteinheit bearbeitet werden.
Beispiele & Implementierungen
GitHub API
Die GitHub API ermöglicht Entwicklern den Zugriff auf GitHub-Ressourcen.
Twitter API
Die Twitter API ermöglicht den Zugriff auf Tweets und Benutzerinformationen.
OpenWeatherMap API
Die OpenWeatherMap API bietet Wetterdaten für verschiedene Standorte.
Implementierungsschritte
API-Ziele definieren
Technologiestapel auswählen
Implementierung und Test durchführen
⚠️ Technische Schulden & Engpässe
Tech Debt
- Veraltete API-Endpunkte
- Unzureichende Tests
- Mangelnde Modularität der API
Bekannte Engpässe
Beispiele für Missbrauch
- Überbeanspruchung von Ressourcendiensten
- Missbrauch von Authentifizierungsmethoden
- Umgehung von Sicherheitsrichtlinien
Typische Fallen
- Unzureichende Dokumentation und Beispiele
- Vernachlässigung von Fehlerbehandlung
- Einführung unnötiger Komplexität
Erforderliche Fähigkeiten
Drivers (Architectural Drivers)
Constraints
- • Einhaltung von REST-Vorgaben
- • Sicherheitsrichtlinien der Organisation
- • Netzwerkbandbreite und -stabilität