Die Schnittstelle, die durch OData-Services bereitgestellt wird, ist eine Http-Schnittstelle.
Damit können alle Datenabfragen oder Datenmanipulationen als Http-Requests formuliert werden.
Die Unterscheidung, ob es sich um eine Datenabfrage oder eine Datenmanipulation (Einfügen, Ändern, Löschen) handelt, wird durch die Http-Anfragemethode (Http-Verb) festgelegt.
Dabei gilt die folgende Zuordnungstabelle:
Daten-Methode |
Http-Verb |
Read, Abfragen von Daten: |
GET |
Create, Einfügen von neuen Daten: |
POST |
Update, Ändern von vorhandenen Date: |
PATCH |
Delete, Löschen von Date: |
DELETE |
Innerhalb des Webservices werden alle Anfragen an die ABES/Objects OData-Schnittstelle an eine einzige Servermethode weitergeleitet.
Innerhalb dieser Methode wird das Http-Verb ermittelt und die verwendete URL geparst.
Um Fehler beim Parsen zu vermeiden, ist darauf zu achten, dass die URL case-sensitiv geschrieben werden muss.
Dies gilt für alle Entitätsnamen, Feldnamen, Parameter, Funktionsbezeichnungen u.ä..
Die von den Http-Anfragen zurückgegebenen Daten werden immer im JSON-Format geliefert.
Einzige Ausnahme davon ist das sogenannte Metadaten-Dokument, welches nach OData-Standard 4.0 im XMLFormat geliefert werden muss.
Die zurückgegebenen JSON-Objekte enthalten die abgefragten (oder geänderten) Daten.
Im Falle eines Fehlers wird ebenfalls ein JSON-Objekt zurückgegeben.
JSON-Objekte, die einen fehlerhaften Zustand oder eine fehlerhafte Abfrage beschreiben, haben immer die folgende Struktur, wobei “nnn” der Http-Statuscode-Fehlernummer entspricht, mit dem der Response versehen ist.
{
“error”:
{
“code”: nnn,
“message”: “Erläuternder Text zum Fehler”
}
}
|
Die gesamte Spezifikation des OData-Protokolls kann in den folgenden Dokumentationen nachgelesen werden:OData-Dokumentation
Die folgenden Dokumente sind von besonderer Bedeutung:http://docs.oasis-open.org/odata/odata/v4.0/odata-v4.0-part1-protocol.pdfhttp://docs.oasis-open.org/odata/odata/v4.0/odata-v4.0-part2-url-conventions.pdfhttp://docs.oasis-open.org/odata/odata/v4.0/odata-v4.0-part3-csdl.pdfhttp://docs.oasis-open.org/odata/odata-json-format/v4.0/odata-json-format-v4.0.pdf
Bei der Implementation der ABES/Objects Schnittstelle wurde Augenmerk darauf gelegt, dieser Spezifikation möglichst nahe zu kommen.