CMDB Datenerfassungs-API
Die CMDB-Datenerfassung Die API stellt Endpunkte bereit, die die Batch-Erfassung eines Arrays von Objekten in einer Importsatztabelle ermöglichen.
Darüber hinaus funktioniert diese API standardmäßig nicht für zboote Instanzen.
Diese API wird über aktiviert Configuration Management Database (CMDB) Plugin (com.snc.cmdb) und erfordert die Rolle cmdb_Import_api_admin.
CMDB Datenerfassung – POST /cmdb/ingest/{Data_Source_sys_ID}
Fügt Datensätze in die Importsatztabelle ein, die dem Datenquellendatensatz zugeordnet ist, der durch die übergebene sys_ID identifiziert wird
Darüber hinaus funktioniert diese API standardmäßig nicht für zboote Instanzen.
Der Anforderungstext muss das JSON-Array von Objekten (Nutzlast) enthalten, die in die Importsatztabelle eingefügt werden sollen. Jedes Objekt entspricht einer Zeile in der Tabelle, jedes Name-Wert-Paar entspricht einer Spalte. Die JSON-Nutzlast muss die Feldnamen aus dem Importsatz ohne das Präfix „u_“ nutzen. Beispielsweise muss der Feldname „u_matching_Record“ in der Nutzlast des Anforderungstexts „matching_Record“ sein. Wenn die Importsatztabelle vorhanden ist, hängt der Endpunkt die Zeilen (Objekte) an die vorhandene Importsatztabelle an. Es wird keine Überprüfung auf Duplikate oder Aktualisierung vorhandener Datensätze durchgeführt.
Wenn Sie anfänglich eine Anwendung erstellen, müssen Sie zuerst den zugehörigen Datenquellendatensatz in Ihrer Instanz erstellen, bevor Sie diesen Endpunkt aufrufen. Wenn Sie diesen Endpunkt nur verwenden, um einer vorhandenen Importsatztabelle Datensätze hinzuzufügen, müssen Sie den Datenquellendatensatz nicht erstellen, aber Sie müssen seine sys_ID kennen Der Datenquellendatensatz beschreibt die Importsatztabelle, in die die angegebene Nutzlast eingefügt werden soll. Diese Tabelle muss die Tabelle „Importsatzzeilen“ [sys_Import_Set_row] erweitern. Außerdem muss die Datenquelle auf festgelegt werden Anhang Und das auf festgelegte Format JSON . Weitere Informationen zu Datenquellen finden Sie unter Datenquellen .
Wenn die im Datenquellendatensatz definierte Importsatztabelle nicht vorhanden ist, hängt der Endpunkt die übergebene Nutzlast an den Datenquellendatensatz an. Um die erste Importsatztabelle zu erstellen, müssen Sie die Daten manuell in die Importsatztabelle importieren. Um die Daten zu importieren, klicken Sie im Formular „zugehörige Datenquelle“ auf Laden Sie 20 Datensätze Im Test Oder Alle Datensätze Laden Link im Abschnitt „zugehörige Links“. Sobald die Importsatztabelle erstellt wurde, können Sie der Tabelle mit diesem Endpunkt keine Spalten hinzufügen. Wenn später Name-Wert-Paare übergeben werden, die in der Importsatztabelle nicht vorhanden sind, werden sie ohne Warnung ignoriert. Wenn Sie die Spalten in der Importsatztabelle ändern müssen, können Sie sie der Tabelle manuell hinzufügen. Sie können auch die Importsatztabelle löschen oder umbenennen und den Endpunkt mithilfe der neuen Nutzlast erneut aufrufen.
Sie müssen über die Rolle cmdb_Import_api_admin verfügen, um auf diesen Endpunkt zuzugreifen.
URL-Format
Versionierte URL: /api/now/{api_Version}/cmdb/ingest/{Data_Source_sys_ID}
Standard-URL: /api/now/cmdb/ingest/{Data_Source_sys_ID}
Unterstützte Anforderungsparameter
| Name | Beschreibung |
|---|---|
| api_version | Optional. Version des Endpunkts, auf den zugegriffen werden soll. Beispiel: v1 Oder v2 . Geben Sie diesen Wert nur an, um eine andere Endpunktversion als die neueste zu verwenden. Datentyp: Zeichenfolge |
| Data_Source_sys_ID | SYS_ID des Datenquellendatensatzes. Datentyp: Zeichenfolge |
| Name | Beschreibung |
|---|---|
| Keine |
| Name | Beschreibung |
|---|---|
| Array | Freiform-Array von Objekten, die die Daten beschreiben, die an die zugehörige Importsatztabelle angehängt werden sollen. Jedes Objekt im Array definiert eine Zeile in der Tabelle „Importsätze“; jedes Name-Wert-Paar eine Spalte. Hinweis:
Dieses Array muss benannt werden, z. B. „{\"Records\":[{\"hostname\": \"hostname1\", \"serialnumber\": \"2acd3873-7fc5-454c-8844-e7769e4d6cfc\", \"model\": \"Modell-ID"},{\"Vendor\": \"ABC Co\"}]} .Datentyp: Array von Objekten |
Header
Die folgenden Anforderungs- und Antwortkopfzeilen gelten nur für diese HTTP-Aktion oder für diese Aktion auf eine bestimmte Weise. Eine Liste der allgemeinen Header, die in der REST API verwendet werden, finden Sie unter Unterstützte REST-API-Header .
| Kopfzeile | Beschreibung |
|---|---|
| Akzeptieren | Datenformat des Antworttexts. Unterstützte Typen: application/json oder application/xml. Standard: application/json |
| Inhaltstyp | Datenformat des Anforderungstexts. Unterstützte Typen: application/json oder application/xml. Standard: application/json |
| Kopfzeile | Beschreibung |
|---|---|
| Keine |
Statuscodes
Die folgenden Statuscodes gelten für diese HTTP-Aktion. Eine Liste der möglichen Statuscodes, die in der REST API verwendet werden, finden Sie unter REST API-HTTP-Antwortcodes .
| Statuscode | Beschreibung |
|---|---|
| 201 | Erstellt. Der Datenquelle wurde ein Anhang hinzugefügt. |
| 202 | Akzeptiert. Zeilen wurden der Importsatztabelle hinzugefügt. |
| 400 | Fehlerhafte Anforderung. Ein fehlerhafter Anforderungstyp oder eine falsch formatierte Anforderung wurde erkannt. |
| 404 | Nicht gefunden. Das angeforderte Element wurde nicht gefunden. |
| 409 | Konflikt. Anhang ist bereits in der Datenquelle vorhanden. |
| 500 | Interner Serverfehler. Beim Verarbeiten der Anforderung ist ein unerwarteter Fehler aufgetreten. Der Antworttext enthält Informationen zum Fehler. |
| 501 | Nicht Implementiert. Anforderungsformat wird nicht unterstützt. |
Antworttext-Parameter (JSON oder XML)
| Name | Beschreibung |
|---|---|
| Fehler | Beschreibt einen aufgetretenen Fehler. Datentyp: Objekt |
| error.details | Zusätzliche Informationen zum Fehler. Datentyp: Zeichenfolge |
| Fehler.Nachricht | Meldung, die den Fehler beschreibt. Datentyp: Zeichenfolge |
| import_set | Name der Importsatztabelle, an die die Nutzlast angehängt wurde. Datentyp: Zeichenfolge |
| Staged_row_count | Anzahl der Zeilen, die an die Importsatztabelle angehängt sind. Datentyp: Zahl |
| Staging_table | Name des Datenquellendatensatzes, der zum Bereitstellen der Nutzlast verwendet wird. Datentyp: Zeichenfolge |
| status | Fehlerstatus. Datentyp: Zeichenfolge |
Beispiel für eine cURL-Anforderung
curl "instance.service-now.com/api/now/cmdb/ingest/4dd9686d1b9800103d374087bc4bcb3d" \
--request POST \
--header "Accept: application/json" \
--header "Content-Type:application/json" \
--data "{\"records\":[{\"hostname\": \"Hostname1\", \"serialnumber\": \"2acd3873-7fc5-454c-8844-e7769e4d6cfc\", \"model\": \"Model 5100"},{\"vendor\": \"ABC Co\"},
{\"hostname\": \"Hostname2\", \"serialnumber\": \"3adb3873-7fc5-564d-8844-e7769e4d6ded\", \"model\": \"Model 5200"},{\"vendor\": \"ACME Co\"}]}"
--user "username":"password"
Erfolgreiche Antwort:
{
"result": {
"staged_row_count": 2,
"import_set": "ISET0010010",
"staging_table": "sn_my_demo_integra_demo_data_source_01"
}
}