{"id":17578,"date":"2020-03-05T10:32:32","date_gmt":"2020-03-05T10:32:32","guid":{"rendered":"http:\/\/parashift.io\/?p=3639"},"modified":"2025-11-30T22:39:52","modified_gmt":"2025-11-30T22:39:52","slug":"die-vorteile-von-standardisierten-rest-schnittstellen","status":"publish","type":"post","link":"https:\/\/parashift.ai\/de\/die-vorteile-von-standardisierten-rest-schnittstellen\/","title":{"rendered":"Die Vorteile von standardisierten REST Schnittstellen"},"content":{"rendered":"\n<p>Bevor wir konkret auf die REST Schnittstelle, auch Application Programming Interface oder kurz API genannt, eingehen, hier ein beispielhafter Erkl\u00e4rungsversuch, wieso solche Schnittstellen so praktisch sind: Da Schnittstellen nach dem Prinzip von &#8222;Plug and Play&#8220; funktionieren, eignet sich hier der Vergleich mit dem Stromanschluss recht gut. Stellen Sie sich vor, Sie m\u00fcssten, bevor Sie eine Tasse Kaffe machen k\u00f6nnen, sich zuerst mit der ganzen Elektrotechnik auseinandersetzen, um fliessenden Strom vom Energiehersteller zu Ihnen nach Hause kriegen zu k\u00f6nnen.<\/p>\n\n\n\n<p><br>Es ist offensichtlich, dass dies aus diversen Gr\u00fcnden nicht wirklich Sinn ergeben w\u00fcrde. Das m\u00f6glicherweise fehlende Know-How und die sehr wahrscheinliche Ineffizienz im Prozess sind zwei naheliegende Begr\u00fcndungen. Stattdessen schliessen Sie doch einfach die Kaffeemaschine an der Steckdose an und los geht&#8217;s. So ziemlich identisch sind Schnittstellen zu verstehen. Sprich, Sie erhalten somit den fixfertigen Zugang zu einer Funktionalit\u00e4t, die Sie f\u00fcr irgendetwas gebrauchen k\u00f6nnen und nicht etwas zuerst selbst noch bauen m\u00fcssen.<\/p>\n\n\n\n<p>Schnittstellen sind also eine sehr praktische Art eines codebasierten Konstruktes, die uns erlauben, Systeme und Funktionalit\u00e4ten einfacher und wesentlich schneller zu bauen. Sie reduzieren die Komplexit\u00e4t des Source Codes und stellen uns eine einfach anwendbare Syntax zur Ansteuerung eines Programms zur Verf\u00fcgung, wodurch wir die Kommunikation zwischen zwei unabh\u00e4ngigen Softwarekomponenten herstellen k\u00f6nnen.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Allgemeine Schnittstellarten&nbsp;<\/h4>\n\n\n\n<p>Basierend auf der Art wie Systeme und Software miteinander interagieren und die Applikationsarchitektur bilden, gibt es verschiedene Schnittstellen f\u00fcr Hardware, Betriebssysteme, Datenstrukturen, Web Services, etc. Handelt es sich um softwarespezifische Schnittstellen, sind diese oftmals nur \u00fcber spezielle Programmiersprachen implementierbar. Zudem haben sie nicht selten eine eigene Syntax und Funktionen, was f\u00fcrs effiziente Handling entweder spezifische Kompetenzen oder Kapazit\u00e4t zum Einlesen voraussetzt. Dann gibts auch noch dateibasierte Schnittstellen, die Dateien in bestimmten Formaten austauschen, wodurch ein System aber langsam und fehleranf\u00e4llig wird. Wenns um webbasierte Schnittstellen geht, spricht man in der Regel je nach Datantransferformat im Request-Respond Messaging von SOAP (<a href=\"https:\/\/de.wikipedia.org\/wiki\/SOAP\" rel=\"noreferrer noopener\" target=\"_blank\">Simple Object Access Protocol<\/a>), RPC (<a href=\"https:\/\/de.wikipedia.org\/wiki\/Remote_Procedure_Call\" rel=\"noreferrer noopener\" target=\"_blank\">Remote Procedure Call<\/a>) oder eben von der REST API. Letztere ist eine der bekannteren. Und diese schauen wir uns jetzt nachstehend genauer an.&nbsp;<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Die REST API<\/h4>\n\n\n\n<p>Die REST (Representational State Transfer)&nbsp;API ist eine der wohl simpelsten Architekturen, wie Schnittstellen&nbsp;designt werden k\u00f6nnen. Sie hat zum Ziel die Verbindung zweier Webapplikationen durch die Standardisierung der Modalit\u00e4t radikal zu vereinfachen.&nbsp;Representational State Transfer heisst sie, da in der Kommunikation zwischen den Applikationen Informationen \u00fcber den Zustand der Server-Ressourcen in beispielsweise JSON-, XML- oder HTML-Format geteilt beziehungsweise repr\u00e4sentiert werden. Dabei erlaubt die REST API einem Client, also zum Beispiel Ihnen, Aktionen wie Ressourcen zu lesen (GET), neue Objekte zu erstellen (POST), Informationen zu aktualisieren\/editieren (PUT) oder diese zu l\u00f6schen (DELETE). Die entsprechenden Befehle schickt der Client einfach \u00fcber&nbsp;<a href=\"https:\/\/de.wikipedia.org\/wiki\/Hypertext_Transfer_Protocol\" rel=\"noreferrer noopener\" target=\"_blank\">HTTP<\/a>. Neben dieser einheitlichen Schnittstelle gibt es noch weitere Restriktionen, welche eingehalten werden m\u00fcssen, um auch wirklich dem&nbsp;REST-Format zu entsprechen (Client und Server Separation,&nbsp;<a href=\"https:\/\/de.wikipedia.org\/wiki\/Zustandslosigkeit\" rel=\"noreferrer noopener\" target=\"_blank\">stateless<\/a>,&nbsp;<a href=\"https:\/\/en.wikipedia.org\/wiki\/Layered_system\" rel=\"noreferrer noopener\" target=\"_blank\">geschichtetes System<\/a>&nbsp;und&nbsp;<a href=\"https:\/\/de.wikipedia.org\/wiki\/Cache\" rel=\"noreferrer noopener\" target=\"_blank\">cacheable<\/a>). Diese behandeln wir hier aber nicht weiter.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Vorteile<\/h4>\n\n\n\n<p>Wieso wir uns nun bei Parashift daf\u00fcr entschieden haben, eine REST API f\u00fcr die Integration unserer Produktes zu entwickeln, hat einerseits mit den allgemeinen Vorteilen von REST APIs zu tun:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Vereinfachtes standardisiertes Format, wodurch Implementierungen stark vereinfacht und beschleunigt werden<\/li>\n\n\n\n<li>Pflegeleichtigkeit im Unterhalt<\/li>\n\n\n\n<li>Server und Client Separation, was grosse Flexibilit\u00e4t und M\u00f6glichkeiten zur individuellen Skalierung schafft<\/li>\n\n\n\n<li>H\u00f6here Ressourceneffizienz, da der Status der Kommunikation zwischen Server und Client nicht gespeichert werden muss<\/li>\n\n\n\n<li>Prozessinstanzen werden jeweils explizit erstellt<\/li>\n\n\n\n<li>Statelessness beziehungsweise Zustandslosigkeit erm\u00f6glicht wesentlich schnellere Recovery-Prozesse bei Fehlern und erh\u00f6ht die Zuverl\u00e4ssigkeit<\/li>\n\n\n\n<li>Adaptierbarkeit auf Syntax beziehungsweise andere Systeme<\/li>\n<\/ul>\n\n\n\n<p>Anderseits aber auch aufgrund dessen, dass wir \u00fcber die URL unseren Kunden&nbsp;<a href=\"https:\/\/de.wikipedia.org\/wiki\/WebHooks\" rel=\"noreferrer noopener\" target=\"_blank\">WebHooks<\/a>&nbsp;zur Verf\u00fcgung stellen k\u00f6nnen. Dar\u00fcber senden wir ihnen Notifications zur Information \u00fcber den Plattform Status&nbsp;und sie k\u00f6nnen sich&nbsp;das regelm\u00e4ssig Senden von Call-Requests ersparen. Das heisst, wir informieren beispielsweise bei der Full-Extraction Methode, wenn die Prozesse der Nachkontrolle abgeschlossen sind und die korrigieren Ergebnisse bereit sind beziehungsweise f\u00fcr die weiterf\u00fchrenden Workflows abgeholt werden k\u00f6nnen. Dadurch ergibt sich eine ideale Integrationsm\u00f6glichkeit in bestehende gut getaktete Systeme und Gesch\u00e4ftsprozesse.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Bevor wir konkret auf die REST Schnittstelle, auch Application Programming Interface oder kurz API genannt, eingehen, hier ein beispielhafter Erkl\u00e4rungsversuch, wieso solche Schnittstellen so praktisch sind: Da Schnittstellen nach dem Prinzip von &#8222;Plug and Play&#8220; funktionieren, eignet sich hier der&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"content-type":"","footnotes":""},"categories":[121],"tags":[],"class_list":["post-17578","post","type-post","status-publish","format-standard","hentry","category-allgemein-2"],"_links":{"self":[{"href":"https:\/\/parashift.ai\/de\/wp-json\/wp\/v2\/posts\/17578","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/parashift.ai\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/parashift.ai\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/parashift.ai\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/parashift.ai\/de\/wp-json\/wp\/v2\/comments?post=17578"}],"version-history":[{"count":1,"href":"https:\/\/parashift.ai\/de\/wp-json\/wp\/v2\/posts\/17578\/revisions"}],"predecessor-version":[{"id":30099,"href":"https:\/\/parashift.ai\/de\/wp-json\/wp\/v2\/posts\/17578\/revisions\/30099"}],"wp:attachment":[{"href":"https:\/\/parashift.ai\/de\/wp-json\/wp\/v2\/media?parent=17578"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/parashift.ai\/de\/wp-json\/wp\/v2\/categories?post=17578"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/parashift.ai\/de\/wp-json\/wp\/v2\/tags?post=17578"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}