Query - Query Twins

Spustí dotaz, který umožňuje procházení relací a filtrování podle hodnot vlastností. Stavové kódy:

  • 200 OK
  • 400 – Chybný požadavek
    • BadRequest – token pro pokračování je neplatný.
    • SqlQueryError – dotaz obsahuje některé chyby.
    • TimeoutError – Časový limit provádění dotazu vypršel po 60 sekundách. Zkuste dotaz zjednodušit nebo přidat podmínky, abyste zmenšili velikost výsledku.
  • 429 – Příliš mnoho požadavků
  • QuotaReachedError – došlo k dosažení maximálního limitu četnosti dotazů.
POST https://digitaltwins-hostname/query?api-version=2023-10-31

Parametry identifikátoru URI

Name V Vyžadováno Typ Description
api-version
query True

string

Požadovaná verze rozhraní API

Hlavička požadavku

Name Vyžadováno Typ Description
max-items-per-page

integer

Maximální počet položek, které se mají načíst na žádost. Server se může rozhodnout vrátit méně, než je požadované číslo.

traceparent

string

Identifikuje požadavek v distribuovaném trasovacím systému.

tracestate

string

Poskytuje identifikační informace o trasování specifické pro dodavatele a je doprovodnou zprávou traceparent.

Text požadavku

Name Typ Description
continuationToken

string

Token, který slouží k načtení další sady výsledků z předchozího dotazu.

query

string

Dotaz, který se má provést. Pokud je k dispozici pokračovací token, tato hodnota se ignoruje.

Odpovědi

Name Typ Description
200 OK

QueryResult

Success

Headers

query-charge: number

Other Status Codes

ErrorResponse

Výchozí odpověď.

Headers

x-ms-error-code: string

Zabezpečení

oauth2

Type: oauth2
Flow: implicit
Authorization URL: https://login.microsoftonline.com/common/oauth2/authorize?resource=0b07f429-9f4b-4714-9392-cc5e8e80c8b0

Příklady

Query for digital twins
Query for digital twins through a relationship
Retrieve paged query results

Query for digital twins

Sample Request

POST https://digitaltwins-hostname/query?api-version=2023-10-31

{
  "query": "SELECT * FROM DIGITALTWINS WHERE temp = 79"
}

Sample Response

{
  "value": [
    {
      "$dtId": "Twin-01",
      "$metadata": {
        "$lastUpdateTime": "2022-02-28T00:30:00.1234567Z",
        "$model": "dtmi:com:example:Sample;1",
        "name": {
          "lastUpdateTime": "2022-02-28T00:30:00.1234567Z"
        },
        "temp": {
          "lastUpdateTime": "2022-02-28T00:30:00.1234567Z"
        },
        "comfortIndex": {
          "lastUpdateTime": "2022-02-28T00:30:00.1234567Z"
        }
      },
      "name": "Sample01",
      "temp": 79,
      "comfortIndex": 50
    },
    {
      "$dtId": "Twin-02",
      "$metadata": {
        "$lastUpdateTime": "2022-02-28T00:29:00.1234567Z",
        "$model": "dtmi:com:example:Sample;1",
        "name": {
          "lastUpdateTime": "2022-02-28T00:29:00.1234567Z"
        },
        "temp": {
          "lastUpdateTime": "2022-02-28T00:29:00.1234567Z",
          "sourceTime": "2022-05-31T12:00:00.000125009Z"
        },
        "comfortIndex": {
          "lastUpdateTime": "2022-02-28T00:29:00.1234567Z"
        }
      },
      "name": "Sample02",
      "temp": 79,
      "comfortIndex": 50
    },
    {
      "$dtId": "Twin-03",
      "$metadata": {
        "$lastUpdateTime": "2022-02-28T00:31:00.1234567Z",
        "$model": "dtmi:com:example:Sample;1",
        "name": {
          "lastUpdateTime": "2022-02-28T00:31:00.1234567Z"
        },
        "temp": {
          "lastUpdateTime": "2022-02-28T00:31:00.1234567Z"
        },
        "comfortIndex": {
          "lastUpdateTime": "2022-02-28T00:31:00.1234567Z"
        }
      },
      "name": "Sample03",
      "temp": 79,
      "comfortIndex": 50
    }
  ],
  "continuationToken": "<token>"
}

Query for digital twins through a relationship

Sample Request

POST https://digitaltwins-hostname/query?api-version=2023-10-31

{
  "query": "SELECT Widget, Gadget FROM DIGITALTWINS Widget JOIN Gadget RELATED Widget.Contains WHERE Widget.$dtId = 'Twin-01'"
}

Sample Response

{
  "value": [
    {
      "Widget": {
        "$dtId": "Twin-01",
        "$metadata": {
          "$lastUpdateTime": "2022-02-28T00:30:00.1234567Z",
          "$model": "dtmi:com:example:Sample;1",
          "name": {
            "lastUpdateTime": "2022-02-28T00:30:00.1234567Z"
          },
          "temp": {
            "lastUpdateTime": "2022-02-28T00:30:00.1234567Z"
          },
          "comfortIndex": {
            "lastUpdateTime": "2022-02-28T00:30:00.1234567Z"
          }
        },
        "name": "Sample01",
        "temp": 79,
        "comfortIndex": 50
      },
      "Gadget": {
        "$dtId": "Twin-02",
        "$metadata": {
          "$lastUpdateTime": "2022-02-28T00:30:00.1234567Z",
          "$model": "dtmi:com:example:Sample;1",
          "name": {
            "lastUpdateTime": "2022-02-28T00:30:00.1234567Z"
          },
          "temp": {
            "lastUpdateTime": "2022-02-28T00:30:00.1234567Z"
          },
          "comfortIndex": {
            "lastUpdateTime": "2022-02-28T00:30:00.1234567Z"
          }
        },
        "name": "Sample02",
        "temp": 79,
        "comfortIndex": 50
      }
    },
    {
      "Widget": {
        "$dtId": "Twin-01",
        "$metadata": {
          "$lastUpdateTime": "2022-02-28T00:30:00.1234567Z",
          "$model": "dtmi:com:example:Sample;1",
          "name": {
            "lastUpdateTime": "2022-02-28T00:30:00.1234567Z"
          },
          "temp": {
            "lastUpdateTime": "2022-02-28T00:30:00.1234567Z"
          },
          "comfortIndex": {
            "lastUpdateTime": "2022-02-28T00:30:00.1234567Z"
          }
        },
        "name": "Sample01",
        "temp": 79,
        "comfortIndex": 50
      },
      "Gadget": {
        "$dtId": "Twin-10",
        "$metadata": {
          "$lastUpdateTime": "2022-02-28T00:30:00.1234567Z",
          "$model": "dtmi:com:example:Sample;1",
          "name": {
            "lastUpdateTime": "2022-02-28T00:30:00.1234567Z"
          },
          "temp": {
            "lastUpdateTime": "2022-02-28T00:30:00.1234567Z"
          },
          "comfortIndex": {
            "lastUpdateTime": "2022-02-28T00:30:00.1234567Z"
          }
        },
        "name": "Sample10",
        "temp": 79,
        "comfortIndex": 50
      }
    }
  ]
}

Retrieve paged query results

Sample Request

POST https://digitaltwins-hostname/query?api-version=2023-10-31

{
  "continuationToken": "<continuationToken from previous query>"
}

Sample Response

{
  "value": [
    {
      "$dtId": "Twin-04",
      "$metadata": {
        "$lastUpdateTime": "2022-02-28T00:30:00.1234567Z",
        "$model": "dtmi:com:example:Sample;1",
        "name": {
          "lastUpdateTime": "2022-02-28T00:30:00.1234567Z"
        },
        "temp": {
          "lastUpdateTime": "2022-02-28T00:30:00.1234567Z"
        },
        "comfortIndex": {
          "lastUpdateTime": "2022-02-28T00:30:00.1234567Z"
        }
      },
      "name": "Sample04",
      "temp": 79,
      "comfortIndex": 50
    },
    {
      "$dtId": "Twin-05",
      "$metadata": {
        "$lastUpdateTime": "2022-02-28T00:30:00.1234567Z",
        "$model": "dtmi:com:example:Sample;1",
        "name": {
          "lastUpdateTime": "2022-02-28T00:30:00.1234567Z"
        },
        "temp": {
          "lastUpdateTime": "2022-02-28T00:30:00.1234567Z"
        },
        "comfortIndex": {
          "lastUpdateTime": "2022-02-28T00:30:00.1234567Z"
        }
      },
      "name": "Sample05",
      "temp": 79,
      "comfortIndex": 50
    },
    {
      "$dtId": "Twin-06",
      "$metadata": {
        "$lastUpdateTime": "2022-02-28T00:30:00.1234567Z",
        "$model": "dtmi:com:example:Sample;1",
        "name": {
          "lastUpdateTime": "2022-02-28T00:30:00.1234567Z"
        },
        "temp": {
          "lastUpdateTime": "2022-02-28T00:30:00.1234567Z"
        },
        "comfortIndex": {
          "lastUpdateTime": "2022-02-28T00:30:00.1234567Z"
        }
      },
      "name": "Sample06",
      "temp": 79,
      "comfortIndex": 50
    }
  ]
}

Definice

Name Description
Error

Definice chyby.

ErrorResponse

Chybová odpověď.

InnerError

Konkrétnější popis chyby, než je uvedeno v obsahující chybě.

QueryResult

Výsledky operace dotazu a volitelného pokračovacího tokenu

QuerySpecification

Specifikace dotazu obsahující příkaz dotazu nebo pokračovací token z předchozího výsledku dotazu.

Error

Definice chyby.

Name Typ Description
code

string

Kód chyby specifický pro službu, který slouží jako dílčí stav pro kód chyby HTTP.

details

Error[]

Podrobnosti o vnitřní chybě.

innererror

InnerError

Objekt obsahující konkrétnější informace o chybě než aktuální objekt.

message

string

Lidsky čitelná reprezentace chyby.

ErrorResponse

Chybová odpověď.

Name Typ Description
error

Error

Podrobnosti o chybě.

InnerError

Konkrétnější popis chyby, než je uvedeno v obsahující chybě.

Name Typ Description
code

string

Konkrétnější kód chyby, než byl poskytnut v obsahující chybě.

innererror

InnerError

Objekt obsahující konkrétnější informace o chybě než aktuální objekt.

QueryResult

Výsledky operace dotazu a volitelného pokračovacího tokenu

Name Typ Description
continuationToken

string

Token, který lze použít k vytvoření nové QuerySpecification pro načtení další sady výsledků.

value

object[]

Výsledky dotazu

QuerySpecification

Specifikace dotazu obsahující příkaz dotazu nebo pokračovací token z předchozího výsledku dotazu.

Name Typ Description
continuationToken

string

Token, který slouží k načtení další sady výsledků z předchozího dotazu.

query

string

Dotaz, který se má provést. Pokud je k dispozici pokračovací token, tato hodnota se ignoruje.