Kontakt & Service
Jetzt Beratung vereinbaren

In wenigen Schritten einen Beratungs­termin mit unseren Experten buchen.

Anwender Helpdesk

Hilfestellung bei Problemen in Ihren SAP-Systemen.

Webinare

Unser Webinarangebot. Jetzt informieren!

Newsletter

Jetzt Newsletter abonnieren!

OData

News & Wissen oData-Protokoll im Überblick: Funktionsweise und Beispiele

In diesem Blogbeitrag geben wir Ihnen einen ersten Überblick über das oData-Protokoll und erklären an einfachen Beispielen die Funktionsweise dahinter.

Was heißt eigentlich oData?

OData (Open Data Protocol) ist ein vom OASIS Consortium entwickeltes Protokoll für das Erstellen und Verwenden von RESTful-APIs. OData legt den Fokus auf die Abbildung der Geschäftslogik und nimmt den Entwicklern bereits eine Vielzahl von technischen Details ab.

So werden bereits Dinge wie request und response headers, status codes, HTTP-Methoden, payload-Formate und query options zur Verfügung gestellt.

Zudem gibt es Funktionen für eine Änderungshistorie sowie für wieder verwendbare Prozeduren und das Senden von batch requests.

Mit OData-Metadata steht zudem eine Art der Dokumentation zur Verfügung, die auch maschinell erfasst und verarbeitet werden kann.

OData verwendet das HTTP-Protokoll (Hyper Text Transfer Protocol) und basiert daher auf dem Client-Server-Architekturstil. HTTP verwendet ein zustandsloses Request-/Response-Protokoll, um zwischen dem Client und dem Webserver zu kommunizieren.

HTTP-Requests werden mit einer definierten Methode gesendet, welche die Aktion angibt, die für die Ressource ausgeführt werden soll. Im Folgenden sind die beiden am häufigsten verwendeten Methoden aufgeführt:

  • GET - wird verwendet, um Informationen vom Server abzurufen (lesender Zugriff)
  • POST - wird verwendet, um Informationen zum Server zu senden (schreibender Zugriff)

HTTP-Response-Methoden enthalten immer die eigentlichen Daten (auch Payload genannt) und einen entsprechenden Status-Code (Return Code).

Hier eine grobe Einordnung der Codes:

  • 1xx: Informativ - Dies bedeutet, dass die Anfrage eingegangen ist und der Prozess fortgesetzt wird.
  • 2xx: Erfolg - Dies bedeutet, dass die Aktion erfolgreich empfangen, verstanden und akzeptiert wurde.
  • 3xx: Umleitung - Dies bedeutet, dass weitere Maßnahmen ergriffen werden müssen, um die Anfrage abzuschließen.
  • 4xx: Client-Fehler - Dies bedeutet, dass die Anfrage eine falsche Syntax enthält oder nicht erfüllt werden kann.
  • 5xx: Serverfehler - Dies bedeutet, dass der Server eine anscheinend gültige Anforderung nicht erfüllen konnte.

Im Zusammenhang mit OData fällt auch immer wieder der Begriff REST.

REST, oder auch „Representational State Transfer“ genannt, beschreibt den Architekturstil von OData. REST ist ressourcenbasiert im Gegensatz zu beispielsweise SOAP, das aktionsbasiert abläuft.

In SOAP haben Sie z. B. eine Anfrage zum Abrufen von „Materialdaten“, während im REST-Modell das „Material“ mithilfe von URI als eine Ressource identifiziert wird. Via HTTP-Methoden wird anschließend festgelegt, welche Operation darauf ausgeführt werden soll.

Die Repräsentation der Ressource ist nicht die Ressource selbst, sondern nur eine Repräsentation, die beschreibt, wie die Ressourcen in einer REST-basierten Architektur manipuliert werden.

OData v2 vs. OData v4

oData v2 ist die ältere und am weitesten verbreitete Version des OData-Protokolls.

Sie bietet:

  • CRUD-Operationen (Create, Read, Update, Delete)
  • Batch-Requests
  • Client-seitige Filterung und Sortierung
  • Datenausgabe im JSON- oder XML-Format

OData v4 ist die neueste Version des Protokolls und beinhaltet eine Menge an „Lessons Learned“, die sich mit der intensiven Benutzung von OData v2 ergeben haben.

  • Bessere Performance durch Reduzierung des Payloads (Metadaten + Rückgabedaten)
  • Verbesserte Datentypen
  • Deutlich mehr Möglichkeiten bei der Filterung der Daten
  • Angepasste Abfrage-Syntax

OData-Beispiele

Beispiel Datenmodell „Products”:

Beispiel 1

Abfrage aller Produkte, die in der Datenbank enthalten sind

https://services.odata.org/V4/OData/OData.svc/Products

Response:

Beispiel 2

Abfrage eines bestimmten Produktes anhand seines Schlüsselattributes (in diesem Fall “ID” = 1)

https://services.odata.org/V4/OData/OData.svc/Products(1)

Response:

Beispiel 3

Selektion bestimmter Produkte anhand eines bestimmten Produktattributes (In diesem Fall Rating“ = 3)

https://services.odata.org/V4/OData/OData.svc/Products?$filter=Rating%20eq%203

Response:

Hierbei gibt es eine Vielzahl von zusätzlichen Parametern, mit der die Ergebnisliste eingeschränkt werden kann, z. B.:

  • $top=2 → liefert die ersten zwei gefundenen Datensätze zurück

  • $select=ID,Description → Im Antwort-Payload wird nur das Feld „ID“ und „Description” zurückgegeben.

Beispiel 4

Navigation innerhalb der Ressourcen

Das Produkt ist laut Datenmodell mit einem Lieferanten verknüpft:

Rückgabe des Lieferanten zu Produkt 1

https://services.odata.org/V4/OData/OData.svc/Products(1)/Supplier

Response:

Zusammenfassung

Das OData-Protokoll ist ein sehr flexibles und aus der heutigen Schnittstellenentwicklung kaum mehr wegzudenkendes Hilfsmittel. Es wird von zahlreichen Anbietern von APIs unterstützt und ist vor allem im SAP-Bereich unumgänglich.

Im SAP-Umfeld findet es bereits in diversen Produkten Verwendung: von SAP S/4HANA On-Premise über SAP S/4HANA Cloud bis hin zu diversen Cloud-Produkten (SAP Sales & Service Cloud, SAP SuccessFactors, uvm.).

Zudem ist das Protokoll vollständig in der Web-Entwicklung (SAPUI5) integriert, sowohl für die Datenbeschaffung als auch für die Daten-Neuanlage.

Für alle, die noch kein oData v4 verwenden: Sie sollten sich definitiv einmal mit den Neuerungen vertraut machen und überlegen, ob der Wechsel nicht eine sinnvolle Ergänzung für Ihr nächstes Projekt darstellt.

 

Stand: 23. März 2023
Newsletter Setzen Sie auf fundiertes Wissen aus allen Bereichen unserer Branche. Regelmäßig und stets aktuell.
Beratende Person
Kontakt Haben Sie Fragen oder wünschen weitere Informationen? Unsere Experten beraten Sie gerne.