Webservices und Client Server Konzepte: Unterschied zwischen den Versionen
Drlue (Diskussion | Beiträge) |
Drlue (Diskussion | Beiträge) |
||
| Zeile 25: | Zeile 25: | ||
==== Selbstbeschreibende Nachrichten ==== | ==== Selbstbeschreibende Nachrichten ==== | ||
REST Nachrichten sollen selbstbeschreibend sein, dafür sollen Standardmethoden verwendet werden, meist werden hier die HTTP Methoden verwendet. | REST Nachrichten sollen selbstbeschreibend sein, dafür sollen Standardmethoden verwendet werden, meist werden hier die HTTP Methoden verwendet. | ||
<br> | |||
Betrachten wir das Beispiel des Kunden mit der Id 101 und stellen den Vergleich zu den HTTP Methoden her: | |||
{| class="wikitable" | |||
|- | |||
! HTTP Methode !! URL !! Operation | |||
|- | |||
| GET || https://webservice.drlue.at/customer/101 || Holen der Benutzerinformation | |||
|- | |||
| DELETE || https://webservice.drlue.at/customer/101 || Löschen des Benutzers | |||
|- | |||
| PUT || https://webservice.drlue.at/customer/101 || Verändern des Benutzers, es müssen die zu ändernden Daten mitgesendet werden | |||
|- | |||
| POST || https://webservice.drlue.at/customer || Anlegen eines neuen Benutzers, die Benutzerdaten müssen mitgesendet werden | |||
|} | |||
=== Caching === | === Caching === | ||
=== Zustandslosigkeit === | === Zustandslosigkeit === | ||
Version vom 6. Januar 2021, 16:02 Uhr
Webservice
Zu allererst soll geklärt werden, was ein Webservices ist:
Ein Webservice (auch Webdienst) stellt eine Schnittstelle für die Maschine-zu-Maschine- oder Anwendungs-Kommunikation über Rechnernetze wie das Internet zur Verfügung. Dabei werden Daten ausgetauscht und auf entfernten Computern (Servern) Funktionen aufgerufen. Jeder Webservice besitzt einen Uniform Resource Identifier (URI), über den er eindeutig identifizierbar ist, sowie je nach Implementierung eine Schnittstellenbeschreibung in maschinenlesbarem Format (als XML-Artefakt, z. B. WSDL), die definiert, wie mit dem Webservice zu interagieren ist. Die Kommunikation kann über Protokolle aus dem Internetkontext wie HTTP oder HTTPS erfolgen; über diese Protokolle wiederum kann beispielsweise XML oder JSON übertragen werden. Ein Webservice ist plattformunabhängig und steht in der Regel mehreren Programmen zum Aufrufen bereit. [1]
Was bedeutet dies nun ganz stark vereinfacht. Ein Webservice ist ein Programm, welches auf einem Server läuft, der über das Internet erreichbar ist. Ein Client (Browser, Anwendung, App), sendet Anfragen an diesen Webservice mit einem standardisierten Protokoll (z.B.: HTTP) und erhält darauf Antworten.
Im folgenden wollen wir uns nun mit RESTful Webservices beschäftigen, diese erfreuen sich großer beliebtheit und stehen in Konkurrenz zu anderen Varianten wie z.b.:
- WSDL/Soap basierten Webservices - Stark antiquiertes Konezpt
- GraphQL basierten Webservices - Damit werden unzulänglichkeiten bei RESTful Webservices behoben, jedoch wird auch auf die einheitliche Schnittstelle verzichtet
RESTful Webservice
Ein RESTful Webservice ist nicht eine konkrete Implementierung, es sind vielmehr Prinzipien und Eigenschaften die auf einen Webservice zutreffen müssen, damit es sich um einen RESTful Webservice handelt bzw. einen Webservice der auf den REST Prinzipien beruht. REST steht für Represential State Transfer und wurde von Roy Fielding "entwickelt".
Prinzipien
Im folgenden wollen wir auf einige der Prinzipien eingehen. Folgender Abschnitt ist jedoch nicht vollständig, soll aber an dieser Stelle ausreichen.
Einheitliche Schnittstelle
Dies ist ein Hauptunterscheidungsmerkmal zu den meisten anderen Webservice Architekturen.
Wir sprechen hier von Ressourcen die einheitlich manipuliert, abgerufen und identifiziert werden können. Eine Ressource kann z.B. ein Kundenprofil sein.
Addressierbarkeit von Ressourcen
Jede Ressource hat einen eindeutigen die über eine URL erreichbar ist
Kunde mit der id 101 -> https://webservice.drlue.at/customer/101
Selbstbeschreibende Nachrichten
REST Nachrichten sollen selbstbeschreibend sein, dafür sollen Standardmethoden verwendet werden, meist werden hier die HTTP Methoden verwendet.
Betrachten wir das Beispiel des Kunden mit der Id 101 und stellen den Vergleich zu den HTTP Methoden her:
| HTTP Methode | URL | Operation |
|---|---|---|
| GET | https://webservice.drlue.at/customer/101 | Holen der Benutzerinformation |
| DELETE | https://webservice.drlue.at/customer/101 | Löschen des Benutzers |
| PUT | https://webservice.drlue.at/customer/101 | Verändern des Benutzers, es müssen die zu ändernden Daten mitgesendet werden |
| POST | https://webservice.drlue.at/customer | Anlegen eines neuen Benutzers, die Benutzerdaten müssen mitgesendet werden |