- Abfrage des Metadaten-Dokuments
- Abfrage des Service-Dokuments
- Metadaten-Umfang in Responses
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.
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”
}
]
}
|
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”.