Sobes.tech
Middle+

Erzählen Sie von der Regel der einheitlichen Schnittstelle (Uniform Interface).

sobes.tech KI

Antwort von AI

Die Regel der einheitlichen Schnittstelle ist eine der sechs architektonischen Beschränkungen von REST. Sie schreibt vor, dass das System einen einheitlichen, standardisierten Ansatz für die Interaktion zwischen Client und Server verwendet. Dies vereinfacht und trennt die Architektur, verbessert die Sichtbarkeit und erleichtert die unabhängige Entwicklung von Client und Server.

Komponenten der einheitlichen Schnittstelle:

  1. Identifikation von Ressourcen: Ressourcen müssen eindeutig identifizierbar sein (meist über URI). Dies ist die Grundlage für eine standardisierte Interaktion. Beispiel: /benutzer/123, /produkte/ABC.
  2. Manipulation von Ressourcen durch ihre Darstellungen: Der Client erhält eine Darstellung der Ressource (z.B. im JSON- oder XML-Format), die ausreichend Informationen enthält, um die Ressource auf dem Server zu ändern oder zu löschen. Der Zustand der Ressource auf dem Server kann durch das Senden der geänderten Darstellung geändert werden.
  3. Selbstbeschreibende Nachrichten: Jede Nachricht (Anfrage oder Antwort) muss genügend Informationen enthalten, um vollständig verstanden zu werden, ohne den Kontext des Serverzustands oder anderer Anfragen. Dazu gehören Metadaten: Content-Type, Caching-Informationen, Links zu anderen Ressourcen usw.
    HTTP/1.1 200 OK
    Content-Type: application/json
    Cache-Control: max-age=3600
    
    {
      "name": "Beispiel Benutzer",
      "links": [
        {
          "rel": "self",
          "href": "/benutzer/123"
        }
      ]
    }
    
  4. Hypermedia als das Steuerungselement des Anwendungszustands (HATEOAS): Ermöglicht es dem Client, dynamisch zwischen Ressourcen zu navigieren, basierend auf hypermedialen Links, die vom Server in der Antwort bereitgestellt werden. Der Client muss nicht alle URIs im Voraus kennen, nur den Einstiegspunkt. Der Server leitet den Client durch verfügbare Aktionen und Ressourcen.
    {
      "orderId": "A123",
      "status": "in Bearbeitung",
      "links": [
        {
          "rel": "stornieren",
          "href": "/bestellungen/A123/stornieren",
          "method": "POST"
        },
        {
          "rel": "self",
          "href": "/bestellungen/A123"
        }
      ]
    }
    

Anstelle fest codierter Pfade erfährt der Client die Möglichkeit, eine Bestellung zu stornieren, anhand des Vorhandenseins und Inhalts des Links mit rel: "stornieren".

Eine einheitliche Schnittstelle ist entscheidend für die Skalierbarkeit und Weiterentwicklung RESTful-Systeme, da sie die Kopplung zwischen Komponenten reduziert.