aoRestServer/ODATA
August 24th, 2023
05 Abfrage von Metatdaten
aoRestServer/ODATA für ABES/Objects - Hinweise für Frontend-Entwickler
1. Abfrage des Metadaten-Dokuments
Das Metadaten-Dokument wird zurückgegeben, wenn ein Http-Get-Request gemäß nachfolgendem Beispiel gesendet wird.
Dieses Dokument kann lt. OData-Protokoll ausschließlich im XML-Format zurückgegeben werden.
Request |
|
GET |
http://test.server.de/odata/$metadata |
Das zurückgegebene XML-Dokument beschreibt ausführlich alle im ABES/Objects-Schema vorkommenden Tabellen (Entitäten) inklusive jeglicher Tabellenfelder (einfache Felder, genannt “Property” sowie Assoziationen und Kollektionen, genannt “NavigationProperty”).
Zusätzlich zu den Tabellen/Feldern werden alle benutzerdefinierten Funktionen beschrieben, die von der ABES/Objects-OData-Schnittstelle zur Verfügung gestellt werden.
Der Umfang dieser Funktionen wird im Laufe der Zeit erweitert und dem Bedarf der Frontend-Entwicklungen angepasst werden.
2. Abfrage des Service-Dokuments
Für einen schnellen Überblick kann das Service-Dokument abgefragt werden. Dieses Dokument wird nur im JSON-Format zurückgegeben.
Hier ein Beispielrequest:
Request |
|
GET |
http://test.server.de/odata |
Dieses JSON-Objekt enthält ebenfalls die Beschreibung aller Entitäten und Funktionen, allerdings nur in verkürzter Form (ohne Feldbeschreibungen und ohne Funktionsparameter-Beschreibungen).
Response |
{ “value”: [ { “name”: “AbbruchGrund”, “kind”: “EntitySet”, “url”: “AbbruchGrund” }, { “name”: “Ablage”, “kind”: “EntitySet”, “url”: “Ablage” }, … { “name”: “Zielvereinbarung”, “kind”: “EntitySet”, “url”: “Zielvereinbarung” }, { “name”: “ServerLogin”, “kind”: “FunctionImport”, “url”: “ServerLogin” }, { “name”: “ServerLogout”, “kind”: “FunctionImport”, “url”: “ServerLogout” }, … { “name”: “GetRoles”, “kind”: “FunctionImport”, “url”: “GetRoles” } ] } |
3. Metadaten-Umfang in Responses
Mittels Request-Header “Accept” kann festgelegt werden, in welchem Umfang Metadaten-Annotationen in die zurückgegebenen JSON-Objekte aufgenommen werden soll.
Dazu ist der Accept-Parameter “odata.metatdata” zu setzen.
Beispiel:
Accept: application/json,application/xml;odata.metadata=full
Als mögliche Werte kann none, minimal oder full eingestellt werden.
Der Default lautet minimal.
Die folgenden Metadata-Annotationen werden von der ABES/Objects-OData-Schnittstelle unterstützt:
- @odata.contetxt
- @odata.count
- @odata.nextLink
- @odata.editLink
- @odata.id
- @odata.type
Die verschiedenen Annotationen werden entsprechend des angeforderten Levels generiert.
Beim Level none wird nur @odata.count und/oder @odata.nextLink ausgegeben, wenn die jeweiligen Voraussetzungen vorhanden sind.
Weitere Informationen zu den Metadata-Annotationen befinden sich in der Dokumentation des OData-Standards, insbesondere in “OData JSON Format 4.0”.
Die Bildschirmfotos können in aktuellen Programmversionen visuell abweichen.
Sie haben Fragen oder Anregungen? Schreiben Sie uns gerne an support@rackow-software.de