Cognite OData-tjänster
Cognite innehåller OData-tjänster för hämtning av data från Cognite Data Fusion (CDF) med OData-klienter som Microsoft Power BI, Microsoft Excel och TIBCO Spotfire.
Open Data Protocol (OData) är en öppen standard som definierar de bästa metoderna för att bygga och använda RESTful API:er. OData erbjuder:
-
Standardiserad frågesyntax: Möjliggör konsekvent filtrering, sortering, paginering och projiceringar över olika datakällor.
-
Metadata-support: Klienter kan få information om datastruktur och typer via metadata- dokument.
-
Interoperabilitet: Alla klienter som stöder HTTP och förstår
ODatakan användaOData-tjänster.
Cognite tillhandahåller en asset-centric OData-tjänst och en OData-tjänst för datamodellering. Båda tjänsterna omfattar standard-API:erna för Cognite och implementerar en OData Version 4 API endast i skrivskyddande syfte. De översätter OData-förfrågningar till motsvarande Cognite API-anrop, och gör att du kan interagera med CDF-data med hjälp av OData-kompatibla klienter och verktyg.
Använd OData-tjänsterna
Du interagerar med Cognite OData-tjänsterna genom att göra HTTP GET-förfrågningar till specifika slutpunkter.
Autentisera
Om du vill autentisera med OData-tjänsterna måste du inkludera en bärartoken i HTTP-förfrågningarnas auktoriseringsrubrik.
Till exempel:
Authorization: Bearer {YourAccessToken}
Du kan få en åtkomsttoken med hjälp av lämpligt autentiseringsflöde för din inställning (t.ex. OAuth 2.0, OpenID Connect). Mer information finns i dokumentationen om autentisering.
Gör förfrågningar
Exempel på GET-förfrågan
För att hämta alla tillgångar i ett projekt:
GET https://{cluster}.cognitedata.com/odata/{apiVersion}/projects/{project}/Assets
Där:
{cluster}
:CDF-klusternamnet (t.ex. westeurope-1).{apiVersion}
: API-versionen förOData-tjänsten (t.ex. v1).{project}
: DittCDF-projektnamn.
Frågeparametrar
Använd frågeparametrar för att filtrera, sortera, välja och paginera data.
-
Filtrering – använd frågeparametern för
$filter
för att filtrera data.Example: Hämta tillgångar där
Name
är lika med'Pump 1'
:GET .../Assets?$filter=Name eq 'Pump 1'
-
Välj fält – använd frågeparametern för
$select
för att hämta specifika fält.Example: Hämta bara
Id
ochName
för tillgångar:GET .../Assets?$select=Id,Name
-
Sortering – använd frågeparametern för
$orderby
för att sortera resultat.Example: Ordna tillgångar i
Name
stigande ordning:GET .../Assets?$orderby=Name asc
-
Expandera relaterade enheter – använd frågeparametern
$expand
för att inkludera relaterade enheter. Example: Hämta en tillgång tillsammans med dess överordnade:GET .../Assets(702630644612)/Parent?$expand=Parent
Obs! Vissa enheter och relationer stöder inte expansion. Se separat servicedokumentation för detaljer.
-
Kombinera frågeparametrar – du kan kombinera flera frågeparametrar för att förfina din förfrågan.
Example: Hämta
Id
ochName
för tillgångarna därName
börjar med'Pump'
, ordnas efterName
och hämtar de första 10 resultaten:GET .../Assets?$filter=startswith(Name,'Pump')&$select=Id,Name&$orderby=Name asc&$top=10
Svarsformat
OData-tjänsten returnerar svar i JSON-format, och följer OData-V4-standarden.
Exempelsvar:
{
"@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
}
]
}
Paginering i svar
OData Service kan komma att paginera svaret för större resultatmängder. Svaret inkluderar en @odata.nextLink
-egenskap med en URL för att hämta nästa sida med resultat.
Exempel:
{
"@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"
}
Begränsningar och funktioner som stöds
OData-tjänster strävar efter att följa OData- V4-standarden, men en del funktioner kan vara begränsade eller inte stödjas på grund av underliggande begränsningar hos Cognite-API:er.
Se separat servicedokumentation för detaljerad information om de funktioner som stöds samt begränsningar.