Query - Query Twins

Wykonuje zapytanie, które umożliwia przechodzenie relacji i filtrowanie według wartości właściwości. Kody stanu:

  • 200 OK
  • 400 Nieprawidłowe żądanie
    • BadRequest — token kontynuacji jest nieprawidłowy.
    • SqlQueryError — zapytanie zawiera pewne błędy.
    • TimeoutError — upłynął limit czasu wykonywania zapytania po 60 sekundach. Spróbuj uprościć zapytanie lub dodać warunki, aby zmniejszyć rozmiar wyniku.
  • 429 Zbyt wiele żądań
  • QuotaReachedError — osiągnięto maksymalny limit szybkości zapytań.
POST https://digitaltwins-hostname/query?api-version=2023-10-31

Parametry identyfikatora URI

Nazwa W Wymagane Typ Opis
api-version
query True

string

Żądana wersja interfejsu API.

Nagłówek żądania

Nazwa Wymagane Typ Opis
max-items-per-page

integer

Maksymalna liczba elementów do pobrania na żądanie. Serwer może wybrać zwrócenie mniejszej niż żądana liczba.

traceparent

string

Identyfikuje żądanie w rozproszonym systemie śledzenia.

tracestate

string

Dostarcza informacje identyfikacyjne śledzenia specyficzne dla dostawcy i jest towarzyszem śledzenia rodziców.

Treść żądania

Nazwa Typ Opis
continuationToken

string

Token, który służy do pobierania następnego zestawu wyników z poprzedniego zapytania.

query

string

Zapytanie do wykonania. Ta wartość jest ignorowana, jeśli podano token kontynuacji.

Odpowiedzi

Nazwa Typ Opis
200 OK

QueryResult

Powodzenie

Headers

query-charge: number

Other Status Codes

ErrorResponse

Odpowiedź domyślna.

Headers

x-ms-error-code: string

Zabezpieczenia

oauth2

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

Przykłady

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
    }
  ]
}

Definicje

Nazwa Opis
Error

Definicja błędu.

ErrorResponse

Odpowiedź na błąd.

InnerError

Bardziej szczegółowy opis błędu niż został podany przez błąd zawierający.

QueryResult

Wyniki operacji zapytania i opcjonalny token kontynuacji.

QuerySpecification

Specyfikacja zapytania zawierająca instrukcję zapytania lub token kontynuacji z poprzedniego wyniku zapytania.

Error

Definicja błędu.

Nazwa Typ Opis
code

string

Kod błędu specyficzny dla usługi, który służy jako stan podrzędny kodu błędu HTTP.

details

Error[]

Szczegóły błędu wewnętrznego.

innererror

InnerError

Obiekt zawierający bardziej szczegółowe informacje niż bieżący obiekt o błędzie.

message

string

Czytelna dla człowieka reprezentacja błędu.

ErrorResponse

Odpowiedź na błąd.

Nazwa Typ Opis
error

Error

Szczegóły błędu.

InnerError

Bardziej szczegółowy opis błędu niż został podany przez błąd zawierający.

Nazwa Typ Opis
code

string

Bardziej szczegółowy kod błędu niż został dostarczony przez błąd zawierający.

innererror

InnerError

Obiekt zawierający bardziej szczegółowe informacje niż bieżący obiekt o błędzie.

QueryResult

Wyniki operacji zapytania i opcjonalny token kontynuacji.

Nazwa Typ Opis
continuationToken

string

Token, którego można użyć do utworzenia nowego elementu QuerySpecification w celu pobrania następnego zestawu wyników.

value

object[]

Wyniki zapytania.

QuerySpecification

Specyfikacja zapytania zawierająca instrukcję zapytania lub token kontynuacji z poprzedniego wyniku zapytania.

Nazwa Typ Opis
continuationToken

string

Token, który służy do pobierania następnego zestawu wyników z poprzedniego zapytania.

query

string

Zapytanie do wykonania. Ta wartość jest ignorowana, jeśli podano token kontynuacji.