Dies ist ein Entwicklerhandbuch für Partner, die HP- und Lenovo-Garantieabfragen für ein Deployment über die REST-API aktivieren möchten, anstatt die Benutzeroberfläche von Nerdio Manager Intune Insights zu verwenden.
Garantieabfragen für HP- und Lenovo-Geräte werden planmäßig ausgeführt, sobald ein gültiger Schlüssel für das Deployment vorhanden ist. Über diese API legen Sie diesen Schlüssel fest (oder entfernen ihn).
|
Integrationstyp |
Anmeldedatenfelder (innerhalb von |
Anmerkungen |
|---|---|---|
|
|
|
Beide sind erforderlich, damit der Synchronisierungsjob HP aufrufen kann. |
|
|
|
Erforderlich, damit der Synchronisierungsjob Lenovo aufrufen kann. |
|
|
keine |
Wird vollständig von Nerdio verwaltet. Es ist im Admin-Bildschirm schreibgeschützt und verfügt über keine Anmeldedatenfelder. Rufen Sie diese API nicht für |
Die beiden Typ-Strings sind Teil des API-Vertrags und müssen exakt wie angegeben geschrieben werden.
Wichtig
Diese Strings unterscheiden zwischen Groß- und Kleinschreibung – Beispiele finden Sie in der nachstehenden Tabelle.
|
Richtig |
Falsch |
|---|---|
|
|
|
|
|
|
Warum die exakte Schreibweise wichtig ist, erfahren Sie weiter unten unter Zwei exakte Typ-Strings, keine Allow-List.
Alle Aufrufe verwenden Authorization: Bearer <jwt>. Das JWT stammt aus derselben Ausgabe von Admin-Token, die Nerdio bereits für alle anderen Features für Partner verwendet:
POST /api/nerdio/issue-jwt/admin
ApiSecret: <shared secret>
Content-Type: application/json
{ "userEmail": "you@example.com", "userName": "Ihr Name" }
Antwort: 200 OK
{ "jwt": "<admin JWT>" }
Die unten aufgeführten Integrations-Endpoints erfordern einen Instanz-Admin-User, dessen Berechtigung bereits im Admin-JWT enthalten ist. Es ist keine weitere Berechtigungserteilung erforderlich.
GET /api/admin/integrations/{type}
Antwort: 200 OK
{
"integrationId": 1,
"integrationType": "HpWarranty",
"isEnabled": true,
"isConfigured": true,
"configJson": null,
"createdAt": "2026-09-01T19:13:09.6863181Z",
"updatedAt": "2026-09-01T19:13:09.6863565Z"
}
isConfigured gibt an, ob Anmeldedaten hinterlegt sind. Die Anmeldedaten selbst werden niemals von diesem oder einem anderen Endpoint zurückgegeben.
Ein unbekannter oder nie erstellter {type} gibt 404 Not Found zurück.
Um alle für das Deployment konfigurierten Elemente aufzulisten:
GET /api/admin/integrations
Antwort: 200 OK mit einem Array derselben Struktur: Es enthält einen Eintrag für jeden Integrationstyp, der jemals gespeichert wurde. Als gelöscht markierte Einträge sind ausgeschlossen.
PUT /api/admin/integrations/{type}
Content-Type: application/json
{
"integrationType": "HpWarranty",
"isEnabled": true,
"credentialsJson": "{\"apiKey\":\"...\",\"apiSecret\":\"...\"}"
}
PUT /api/admin/integrations/{type}
Content-Type: application/json
{
"integrationType": "LenovoWarranty",
"isEnabled": true,
"credentialsJson": "{\"clientId\":\"...\"}"
}
Antwort: 200 OK, das resultierende IntegrationResponseDto (gleiche Struktur wie in Abschnitt 1).
Wichtig
Bei diesem Body können drei Dinge leicht falsch gemacht werden:
-
integrationTypeist im Body erforderlich, zusätzlich zur Angabe in der Route. Wird es weggelassen, wird400mit{"errors":{"IntegrationType":["The IntegrationType field is required."]}}zurückgegeben. Der Wert muss nicht mit dem Wert in der Route übereinstimmen. Nerdio Manager speichert und sucht immer anhand des Werts in der Route. Wenn Sie das Feld ganz weglassen, schlägt die Validierung jedoch fehl. Senden Sie es daher jedes Mal mit. -
credentialsJsonist ein String, der JSON enthält, kein verschachteltes JSON-Objekt. Der eigene Admin-Bildschirm von Nerdio Manager erstellt ihn vor dem Senden mitJSON.stringify(...). Wenn Sie den Wert als verschachteltes Objekt statt als String senden, erhalten Sie400mit"The JSON value could not be converted to System.String". Bei einem HTTP-Client, der Anfragen direkt sendet, bleibt der Fehler nicht unbemerkt: Ein falsch strukturiertescredentialsJsonwird sofort abgelehnt. -
Wenn
credentialsJsonbei einer bestehenden Integration weggelassen wird, bleiben die zuvor gespeicherten Anmeldedaten erhalten. So ändern SieisEnabledviaPUT, ohne den geheimen Schlüssel erneut senden zu müssen. Senden SiecredentialsJsonnur, wenn Sie den gespeicherten Wert tatsächlich ersetzen möchten.
Dieser Aufruf ist ein Upsert: Das erste PUT für {type} erstellt einen Datensatz. Jedes weitere PUT aktualisiert denselben Datensatz.
PATCH /api/admin/integrations/{type}/toggle
Content-Type: application/json
{ "isEnabled": false }
Antwort: 204 No Content. Für einen unbekannten Typ {type} wird 404 Not Found zurückgegeben.
DELETE /api/admin/integrations/{type}
Antwort: 204 No Content bei Erfolg, 404 Not Found, wenn für diesen Typ nichts hinterlegt ist. Dies ist ein Soft-Delete: Ein erneuter Aufruf von PUT für denselben {type} erstellt einen völlig neuen Datensatz (eine neue integrationId); der gelöschte Datensatz wird nicht wiederhergestellt.
Nerdio Manager hat keine Möglichkeit, einen HP- oder Lenovo-Schlüssel vor dem Speichern beim Anbieter zu überprüfen. Auch wenn ein Schlüssel falsch eingegeben wurde oder abgelaufen ist, wird das Speichern erfolgreich abgeschlossen: Die Antwort lautet 200 OK und isConfigured: true – genau wie bei einem gültigen Schlüssel.
Der Fehler zeigt sich erst später und bleibt unbemerkt: Die nächste geplante Synchronisierung versucht, den Anbieter aufzurufen. Der Aufruf schlägt fehl, und im Protokoll der Hintergrundsynchronisierung wird eine Warnung erfasst. An den Aufrufer dieser API wird nichts zurückgegeben und es erscheint keine sichtbare Fehlermeldung. Aus Sicht des Admins ist nur eines zu erkennen: Die Felder für Garantiedaten dieses Anbieters werden auf den Geräten nie aufgefüllt. Wenn das passiert, überprüfen Sie den Wert der Anmeldedaten. Dass der API-Aufruf 200 zurückgegeben hat, bedeutet nicht, dass der Schlüssel gültig ist.
PUT prüft {type} nicht anhand einer Liste bekannter Typen. PUT /api/admin/integrations/HPWaranty (mit Tippfehler) gibt 200 OK zurück und erstellt genauso wie bei korrekter Schreibweise einen Datensatz. Der Fehler wird nicht durch 404 abgefangen.
Diese Zeile ist dann für den Sync-Job für immer unsichtbar. Der Lesepfad (GET/PUT/DELETE) gleicht {type} ohne Berücksichtigung der Groß-/Kleinschreibung mit der Datenbank ab, daher gibt GET /api/admin/integrations/hpwarranty problemlos die HpWarranty-Zeile zurück und lässt eine Speicherung mit Tippfehler oder falscher Groß-/Kleinschreibung bei der Überprüfung unauffällig erscheinen. Der Sync-Job lädt jedoch aktivierte Integrationen und vergleicht deren Typ im Speicher exakt und unter Berücksichtigung der Groß- und Kleinschreibung mit den Zeichenfolgen "HpWarranty" und "LenovoWarranty". Ein als HPWaranty, hpwarranty oder in einer anderen Variante gespeicherter Datensatz besteht alle Prüfungen beim Lesen, wird aber bei jeder Sync-Ausführung stillschweigend übersprungen.
Wichtig
Auf diesem Pfad wird kein Fehler gemeldet: weder beim Erstellen des Datensatzes mit PUT noch bei einem späteren GET oder durch den Sync-Job. Dieser findet einfach keinen passenden Typ und fährt fort. Derzeit können Sie sich nur schützen, indem Sie die beiden Typbezeichnungen gleich beim ersten Mal exakt richtig eingeben. Für eine künftige Version sind zuverlässigere und klarere Fehlermeldungen geplant.
|
Status |
Wann |
|---|---|
|
|
Der JSON-Anfragetext ist fehlerhaft, |
|
|
Fehlendes oder ungültiges Bearer-Token bei jedem |
|
|
Das Token ist gültig, aber der User ist kein Instanz-Admin. |
|
|
|
|
|
|
|
Aktion |
Methode |
Pfad |
Anfragetext |
|---|---|---|---|
|
Einen Admin-JWT abrufen |
|
|
|
|
Alle Integrationen auflisten |
|
|
keine |
|
Status einer Integration abrufen |
|
|
keine |
|
Anschalten/Anmeldedaten festlegen |
|
|
|
|
Ausschalten/Anschalten, Anmeldedaten beibehalten |
|
|
|
|
Vollständig entfernen |
|
|
keine |
{type} ist HpWarranty oder LenovoWarranty. Rufen Sie diese API nicht für DellWarranty auf.
Kommentare (0 Kommentare)