Cognite OData-tjenester
Cognite tilbyr OData-tjenester for å hente data fra Cognite Data Fusion (CDF) ved hjelp av OData-klienter som Microsoft Power BI, Microsoft Excel og TIBCO Spotfire.
Open Data Protocol (OData) er en åpen standard som definerer anbefalte fremgangsmåter for å bygge og forbruke RESTful-API-er. OData tilbyr følgende:
-
Standardisert spørringssyntaks: Gjør det mulig med filtrering, sortering, paginering og projeksjoner på tvers av ulike datakilder.
-
Støtte for metadata: Klienter kan oppdage datastrukturen og -typene via metadata-dokumenter.
-
Interoperabilitet: Alle klienter som støtter HTTP og forstår
OData, kan forbrukeOData-tjenester.
Cognite tilbyr en taggsentrert OData-tjeneste og en OData-tjeneste for datamodellering. Begge tjenestene pakker inn standard-API-ene for Cognite og implementerer en OData Version 4 API for skrivebeskyttelsesformål. De oversetter OData-forespørsler til tilsvarende Cognite API-oppkallinger, slik at du kan samhandle med CDF-data ved hjelp av OData-kompatible klienter og verktøy.
Bruke OData-tjenestene
Hvis du vil samhandle med Cognite OData-tjenester, må du sende HTTP GET-forespørsler til spesifikke endepunkter.
Autentisering
Hvis du vil autentisere deg med OData-tjenestene, må du inkludere en bærertoken i godkjenningsoverskriften for HTTP-forespørslene.
Eksempel:
Authorization: Bearer {YourAccessToken}
Du kan skaffe deg en tilgangstoken med den riktige autentiseringsflyten for oppsettet ditt (f.eks. OAuth 2.0, OpenID Connect). Hvis du vil ha flere detaljer, kan du se dokumentasjonen for autentisering.
Sende forespørsler
Eksempel på GET-forespørsel
Slik henter du alle tagger i et prosjekt:
GET https://{cluster}.cognitedata.com/odata/{apiVersion}/projects/{project}/Assets
Der:
{cluster}
:CDF-klyngenavnet (f.eks. vesteuropa-1).{apiVersion}
: API-versjonen tilOData-tjenesten (f.eks. v1).{project}
:CDF-prosjektnavnet ditt.
Spørringsparametere
Bruk spørringsparametere for å filtrere, sortere, velge og paginere data.
-
Filtrering – bruk spørringsparameteren
$filter
for å filtrere data.Eksempel: Hent tagger der
Name
er lik'Pump 1'
:GET .../Assets?$filter=Name eq 'Pump 1'
-
Velge felter – bruk spørringsparameteren
$select
til å hente spesifikke felter.Eksempel: Hent bare
Id
ogName
for tagger:GET .../Assets?$select=Id,Name
-
Sortering – bruk spørringsparameteren
$orderby
til å sortere resultater.Eksempel: Sorter tagger etter
Name
i stigende rekkefølge:GET .../Assets?$orderby=Name asc
-
Utvide relaterte enheter – bruk spørringsparameteren
$expand
til å inkludere relaterte enheter. Eksempel: Hent en tagg sammen med dens overordnede:GET .../Assets(702630644612)/Parent?$expand=Parent
Merk: Ikke alle enheter og relasjoner støtter utvidelse. Se dokumentasjonen for de enkelte tjenestene for detaljer.
-
Kombinere spørringsparametere – du kan kombinere flere spørringsparametere for å avgrense forespørselen.
Eksempel: Hent
Id
ogName
for tagger derName
starter med'Pump'
, sortert etterName
, og hent de første ti resultatene:GET .../Assets?$filter=startswith(Name,'Pump')&$select=Id,Name&$orderby=Name asc&$top=10
Svarformat
OData-tjenestene returner svar i JSON-format, i henhold til OData V4-standarden.
Eksempelsvar:
{
"@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-tjenesten kan paginere svaret for store resultatsett. Svaret inkluderer en @odata.nextLink
-egenskap med en nettadresse for å hente den neste siden med resultater.
Eksempel:
{
"@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"
}
Begrensninger og funksjoner som støttes
OData-tjenestene har som mål å overholde OData V4-standarden, men det kan hende at noen funksjoner er begrenset eller ikke støttes på grunn av underliggende restriksjoner for Cognite API-ene.
Se dokumentasjonen for de enkelte tjenestene hvis du vil ha detaljert informasjon om funksjoner som støttes, og begrensninger.