Umgang mit Iotnodes
Dieses Dokument enthält einige Beispiele für gängige API-Aufrufe zum Umgang mit Iotnodes. Eine ausführlichere Beschreibung jedes Endpunkts finden Sie in der Swagger-Dokumentation.
Iotnodes (d. h. Entitäten) können auf zwei Arten angesprochen werden: entweder über die reguläre Yggio-API oder über die NGSI-API. Weitere Informationen zur NGSI-API finden Sie im NGSI-Abschnitt.
Alle Beispiele, die Zugriffstoken erfordern, werden als „Bearer <token>“ gekennzeichnet, wobei <token> durch Ihr eigenes Zugriffstoken ersetzt werden sollte.
Einen iotnode aktualisieren
In diesem Beispiel aktualisieren wir die Beschreibung des Geräts.
curl -sS -X PUT https://staging.yggio.net/api/iotnodes/<device_id> \
-H 'authorization: Bearer <token>' \
-H 'content-type: application/json' \
-d @- <<EOF
{
"description": "My new description"
}
EOF
Iotnodes mit q-Query-Filter abrufen
Mit benutzerdefinierten Abfragen (oder „q-queries“) können Sie leistungsstarke Gerätefilterung durchführen.
In diesem Beispiel verwenden wir eine q-Query, um alle Geräte abzurufen, bei denen die Eigenschaft contextMap.Place auf Building1 gesetzt ist.
GET https://staging.yggio.net.yggio.net/api/iotnodes?q=contextMap.Place:Building1
Eine ausführliche Anleitung zu q-Queries finden Sie im Yggio-Kontrollpanel.
Iotnodes mit Pagination abrufen
Maximal 2000 Iotnodes können mit einer Anfrage abgerufen werden. Die Pagination erfolgt über die Cursor-Pagination-Methode.
Um Pagination zu verwenden, müssen cursorId, cursorDirection und orderBy angegeben werden.
Vollständige Pagination wird nur für _id, name und reportedAt unterstützt.
Um Pagination mit anderen Eigenschaften zu verwenden, müssen Sie zusätzlich nach der Eigenschaft filtern, nach der sortiert wird.
Um die nächste Seite zu erhalten, müssen Sie orderBy, cursorDirection=next angeben und cursorId auf die orderBy-Eigenschaft des letzten Iotnodes der vorherigen Antwort setzen.
Beispiel: orderBy=name cursorDirection=next cursorId=NameOfLastDevice
Um die vorherige Seite zu erhalten, müssen Sie orderBy, cursorDirection=prev angeben und cursorId auf die orderBy-Eigenschaft des ersten Iotnodes der vorherigen Antwort setzen.
Beispiel: orderBy=name cursorDirection=prev cursorId=NameOfFirstDevice
Ein praktisches Beispiel, wie man ALLE Iotnodes mit Pagination abruft
const TOKEN = 'x'; // Auth token
const SERVER_URL = 'https://example.yggio.net';
const BASE_URL = `${SERVER_URL}/api/iotnodes?limit=1000&orderBy=_id`;
const REQUEST_OPTIONS = {
headers: {
Authorization: `Bearer ${TOKEN}`,
accept: 'application/json',
}
};
let cursorId;
let allIotnodes = [];
while (true) {
let URL = BASE_URL;
if (cursorId) {
URL = `${BASE_URL}&cursorDirection=next&cursorId=${cursorId}`;
}
const response = await fetch(URL, REQUEST_OPTIONS);
const iotnodes = await response.json();
allIotnodes = allIotnodes.concat(iotnodes);
if (iotnodes.length === 0) {
break;
}
cursorId = iotnodes[iotnodes.length - 1]._id;
}
// allIotnodes now contains all iotnodes