Cognite OData-Services
Cognite stellt OData-Services für den Abruf von Daten aus Cognite Data Fusion (CDF) bereit. Zum Einsatz kommen dabei OData-Clients wie Microsoft Power BI, Microsoft Excel und TIBCO Spotfire.
Open Data Protocol (OData) ist ein offener Standard zur Festlegung von Best Practices für die Entwicklung und Nutzung von RESTful APIs. OData bietet die folgenden Vorteile:
-
Standardisierte Abfragesyntax: Ermöglicht konsistente Filterung, Sortierung, Paginierung und Projektion über verschiedene Datenquellen.
-
Metadatenunterstützung: Clients können die Datenstruktur und -typen mithilfe von Metadatendokumenten erkunden.
-
Interoperabilität: Clients, die HTTP unterstützen und
ODataverstehen, könnenOData-Services nutzen.
Cognite stellt einen anlagenbezogenen OData-Service und einen OData-Service für die Datenmodellierung zur Verfügung. Beide Services umfassen die standardmäßigen Cognite-APIs und implementieren eine OData Version 4 API für schreibgeschützte Zwecke. Sie übersetzen OData-Anfragen in entsprechende Cognite API-Aufrufe, sodass Sie mithilfe von OData-kompatiblen Clients und Tools mit CDF-Daten interagieren können.
Nutzung der OData-Services
Um mit den Cognite OData-Services zu interagieren, stellen Sie HTTP-GET-Anfragen an spezifische Endpunkte.
Authentifizierung
Für die Authentifizierung gegenüber den OData-Services müssen Sie in den Autorisierungsheader Ihrer HTTP-Anfragen einen Bearer-Token einfügen.
Zum Beispiel:
Authorization: Bearer {YourAccessToken}
Sie können ein Zugriffstoken über den für Ihr System geeigneten Authentifizierungsweg (z. B. OAuth 2.0, OpenID Connect) erhalten. Weitere Details finden Sie in der Authentifizierungsdokumentation.
Anfragen stellen
Beispiel für eine GET-Anfrage
Zum Abruf aller Anlagenteile in einem Projekt:
GET https://{cluster}.cognitedata.com/odata/{apiVersion}/projects/{project}/Assets
Mit:
{cluster}
: DerCDF-Clustername (z. B. westeurope-1).{apiVersion}
: Die API-Version desOData-Service (z. B. v1).{project}
: Der Name IhresCDF-Projekts.
Abfrageparameter
Verwenden Sie Abfrageparameter zum Filtern, Sortieren, Auswählen und Paginieren von Daten.
-
Filtern - Verwenden Sie den Abfrageparameter
$filter
zum Filtern von Daten.Beispiel: Abruf von Anlagenteilen, bei denen
Name
gleich'Pump 1'
ist:GET .../Assets?$filter=Name eq 'Pump 1'
-
Auswahl von Feldern - Verwenden Sie den Abfrageparameter
$select
zum Abruf bestimmter Felder.Beispiel: Abruf ausschließlich von
Id
undName
von Anlagenteilen:GET .../Assets?$select=Id,Name
-
Sortieren - Verwenden Sie den Abfrageparameter
$orderby
zum Sortieren von Ergebnissen.Beispiel: Aufsteigende Sortierung von Anlagenteilen auf Basis von
Name
:GET .../Assets?$orderby=Name asc
-
Erweiterung zugehöriger Entitäten - Verwenden Sie den Abfrageparameter
$expand
, um zugehörige Entitäten einzuschließen. Beispiel: Abruf eines Anlagenteils zusammen mit seinem übergeordneten Element:GET .../Assets(702630644612)/Parent?$expand=Parent
Hinweis: Die Erweiterung wird nicht von allen Entitäten und Beziehungen unterstützt. Für detaillierte Informationen siehe die entsprechende Service-Dokumentation.
-
*Kombinieren von Abfrageparametern - Sie können mehrere Abfrageparameter kombinieren, um Ihre Anfrage zu verfeinern.
Beispiel: Abruf von
Id
undName
von Anlagenteilen, bei denenName
mit'Pump'
beginnt, sortiert nachName
, Abruf der zehn ersten Ergebnisse:GET .../Assets?$filter=startswith(Name,'Pump')&$select=Id,Name&$orderby=Name asc&$top=10
Antwortformat
Die OData-Services geben Antworten im JSON-Format zurück und folgen dabei dem OData-Standard V4.
Beispielantwort:
{
"@odata.context": "https://{cluster}.cognitedata.com/odata/{apiVersion}/projects/{project}/$metadata#Assets/",
"value": [
{
"Id": "12345",
"DataSetId": null,
"ExternalId": "WMT:VAL",
"Name": "Pump 1",
"Description": "Main pump"
// other properties
}
]
}
Paginierung in Antworten
Im Fall von umfangreichen Antworten kann der OData-Service die Antwort paginieren. Die Antwort umfasst eine @odata.nextLink
-Eigenschaft mit einer URL für den Abruf der nächsten Seite mit Ergebnissen.
Beispiel:
{
"@odata.context": "https://{cluster}.cognitedata.com/odata/{apiVersion}/projects/{project}/$metadata#Assets",
"value": [ // records ],
"@odata.nextLink": "https://{cluster}.cognitedata.com/odata/{apiVersion}/projects/{project}/Assets?$skipToken=123"
}
Einschränkungen und unterstützte Merkmale
Die OData-Services zielen auf die Einhaltung des OData-Standards V4 ab, allerdings gibt es aufgrund der zugrundeliegenden Einschränkungen der Cognite-APIs bei einigen Merkmalen Einschränkungen oder bestimmte Merkmale werden überhaupt nicht unterstützt.
Für detaillierte Informationen über unterstützte Merkmale und Einschränkungen siehe die entsprechende Service-Dokumentation.