Ein Blog

30 Artikel

Zusammenhang von REST, CRUD und HTTP Methoden

Softwaresysteme bilden häufig Arbeitsabläufe / Prozesse aus der realen Welt ab (z.B. Email <-> Briefpost). Insbesondere Abläufe die Kommunikation und Information beinhalten lassen sich wunderbar digitalisieren.

(Informatik = Information + Automatik --> Automatische Informationsverarbeitung)

Dabei hat man festgestellt, dass ein paar Vorgänge sich immer wieder zeigen bzw. grundlegend sind.

CRUD (Create, Retrieve, Update, Delete), ist eine Abkürzung für diese Vorgänge zur Erzeugung, Abfrage, Aktualisierung und zum Löschen von Daten in einem "Informationssystem" einer Softwareanwendung.

REST (Representational State Transfer), ist ein Entwurfshilfe für die Entwicklung von verteilten Informationssystemen, d.h. von Systemen die untereinander kommunizieren, Daten austauschen. Es handelt sich dabei nicht um einen Standard, den man einhalten muss, sondern vielmehr um einen Satz von Bedingungen, eine Richtschnur.

Theoretisch klingt das ganze ungefähr so:

  1. Es handelt sich beim konkreten Fall/System um eine Client-Server-Architektur, d.h. ein Server stellt einen (Informations-)Dienst breit, der bei Bedarf von einem Client angefragt werden kann.

  2. Informationsquellen (Ressources) des Servers werden über eindeutige, einfach zu verstehende Adressen (URI/URL) nach aussen offengelegt. Sodass es für andere Anwendungen, die auf eine Informationsquelle zugreifen wollen, eine eindeutige Adresse (einen eindeutigen Zugriffsweg) gibt.

  3. Die Daten/Dienste die über eine Adresse von einer Informationsquelle angefragt werden, können in unterschiedlicher Darstellungsform (Representations) ausgeliefert werden. Bedeutet das Daten zum Bespiel in den Formaten HTML, JSON oder XML zur Verfügung gestellt werden.

  4. Nachrichten (Messages), d.h. die Sätze / Wörter, die zur Kommunikation zwischen Client und Server dienen, sollen selbstbeschreibend (Meaningful) sein. Die HTTP-Verben wären ein Beispiel hierfür (siehe weiter unten).

  5. Die Kommunikation / Nachrichten sind zustandslos, d.h. weder Server noch Client benötigen oder speichern mehr Information als in der jeweiligen Nachricht (Anfrage) enthalten sind. Alle benötigten Informationen sind stets in einer Nachricht enthalten.

Das World Wide Web ist mit Sicherheit eines der größten verteilten Softwaresysteme auf unserem Planeten. Das zugrundeliegende Kommunikationsprotokoll HTTP (HyperTextTransferProtocol) bietet zum Nachrichtenaustausch zwischen Server (Webserver) und Client (Webbrowser) standardisierte Verben an. Die meistbenutzten davon sind:

  1. GET - fordert die angegebene Ressource (Information / Daten) vom Server an (Retrieve).

  2. POST - dient dazu eine neue Ressource ( Datenquelle) auf dem Server anzulegen (Create/Update). (PUT und PATCH - dienen ebenfalls dazu Daten anzulegen (Create) bzw. zu verändern (Update), werden aber seltener genutzt als POST)

  3. DELETE - Löscht die angegebene Ressource (die zugehörigen Daten auf dem Server) (Delete).

Es sollte erkennbar sein, dass sich HTTP mit seinen Verben gut dazu nutzen lässt, eine RESTful (d.h. nach REST Prinzipien aufgebaute) Schnittstelle (API) / Kommunikation zwischen verteilten CRUD Systemen umzusetzen.

mathiasmell 19. Februar 2019 10:28 Begriffe , best-practise

0 Kommentare

  • Bisher noch keine Kommentare zum Beitrag. Sei der Erste!