Sobes.tech
Junior

Was ist eine REST-orientierte Architektur (ROA)?

sobes.tech KI

Antwort von AI

REST-orientierte Architektur (Representational State Transfer) ist ein Architekturstil für verteilte Systeme, basierend auf einer Reihe von Prinzipien, die definieren, wie Ressourcen identifiziert werden und wie die Interaktion zwischen Client und Server abläuft.

Grundprinzipien von REST:

  1. Client-Server: Trennung der Verantwortlichkeiten. Der Client kümmert sich um die Benutzeroberfläche, der Server um Speicherung und Verarbeitung der Daten.
  2. Zustandslos (Stateless): Jede Anfrage vom Client an den Server muss alle notwendigen Informationen enthalten, um sie zu verarbeiten. Der Server speichert keinen Zustand des Clients zwischen den Anfragen.
  3. Cachefähig: Clients und Zwischenknoten können Serverantworten zwischenspeichern, um die Leistung und Skalierbarkeit zu verbessern.
  4. Einheitliche Schnittstelle:
    • Ressourcenidentifikation: Ressourcen werden eindeutig über URLs identifiziert.
    • Manipulation von Ressourcen durch Repräsentationen: Der Client kann Ressourcen mittels ihrer Repräsentation (z.B. JSON, XML) manipulieren.
    • Selbstbeschreibende Nachrichten: Jede Nachricht enthält ausreichend Informationen, um sie zu verstehen.
    • Hypermedia als Steuerung des Anwendungszustands (HATEOAS): Der Client interagiert mit der Anwendung ausschließlich über Hyperlinks, die in den Serverantworten bereitgestellt werden.
  5. Schichtsystem: Das System kann in Schichten organisiert sein (z.B. Proxies, Gateways), wobei jeder Bestandteil nur die nächste Schicht sieht, mit der er interagiert.
  6. Code auf Anfrage (Code-On-Demand - optional): Der Server kann temporär die Funktionalität des Clients erweitern, indem er ausführbaren Code (z.B. JavaScript) überträgt.

In QA umfasst REST API-Testing die Überprüfung der Einhaltung dieser Prinzipien sowie:

  • Funktionstests (HTTP-Methoden GET, POST, PUT, DELETE).
  • Lasttests.
  • Sicherheitstests.
  • Kompatibilitätstests (verschiedene Datenformate, Clients).