CMDB Datenerfassungs-API

  • Freigeben Version: Xanadu
  • Aktualisiert 1. August 2024
  • 4 Minuten Lesedauer
  • Die CMDB-Datenerfassungs- API stellt Endpunkte bereit, die die Batch-Erfassung eines Arrays von Objekten in einer Importsatztabelle ermöglichen.

    Warnung:
    Diese API wird nicht mehr empfohlen. Um dieselbe Funktionalität mit verbesserter Skalierbarkeit und Stabilität zu bieten, verwenden Sie den -Endpunkt Importsatz: POST /now/import/{stagingTableName}/insertMultiple. Ab Release Quebec sollte jede Verwendung der CMDB-Datenerfassungs-API migriert werden, um stattdessen den Endpunkt „Importsatz – insertMultiple“ zu verwenden.

    Darüber hinaus funktioniert diese API bei zBoot-Instanzen nicht standardmäßig.

    Diese API wird über das Plugin Configuration Management Database (CMDB) (com.snc.cmdb) aktiviert 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 Datenquellen-Datensatz zugeordnet ist, der durch die übergebene sys_id identifiziert wird.

    Warnung:
    Diese API wird nicht mehr empfohlen. Um dieselbe Funktionalität mit verbesserter Skalierbarkeit und Stabilität zu bieten, verwenden Sie den -Endpunkt Importsatz: POST /now/import/{stagingTableName}/insertMultiple. Ab Release Quebec sollte jede Verwendung der CMDB-Datenerfassungs-API migriert werden, um stattdessen den Endpunkt „Importsatz – insertMultiple“ zu verwenden.

    Darüber hinaus funktioniert diese API bei zBoot-Instanzen nicht standardmäßig.

    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 sollte 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 nicht nach Duplikaten gesucht oder ein Update vorhandener Datensätze durchgeführt.

    Wenn Sie zum ersten Mal 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 zum Hinzufügen von Datensätzen zu einer vorhandenen Importsatztabelle verwenden, müssen Sie den Datenquellen-Datensatz nicht erstellen, Sie müssen jedoch dessen 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 Anhang und das Format auf JSONfestgelegt werden. 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 zugehörigen Datenquellenformular im Abschnitt „Zugehörige Links“ auf den Link „ 20 Datensätze testen “ oder „Alle Datensätze laden“. Sobald die Importsatztabelle erstellt wurde, können Sie ihr 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 die Importsatztabelle auch löschen oder umbenennen und den Endpunkt mit der neuen Nutzlast erneut aufrufen.

    Sie müssen über die Rolle „cmdb_import_api_admin“ verfügen, um auf diesen Endpunkt zugreifen zu können.

    URL-Format

    URL mit Versionsnummer: /api/now/{api_version}/cmdb/ingest/{data_source_sys_id}

    Standard-URL: /api/now/cmdb/ingest/{data_source_sys_id}

    Unterstützte Anforderungsparameter

    Tabelle : 1. Pfadparameter
    Name Beschreibung
    api_version Optional. Version des Endpunkts, auf den zugegriffen werden soll. Zum 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 Datenquelldatensatzes.
    Tabelle : 2. Abfrageparameter
    Name Beschreibung
    Keine
    Tabelle : 3. Anforderungstextparameter (XML oder JSON)
    Name Beschreibung
    Array Freiform-Array von Objekten, welche die Daten beschreiben, die an die zugehörige Importsatztabelle angehängt werden sollen. Jedes Objekt im Array definiert eine Zeile in der Importsatztabelle. jedes Name-Wert-Paar eine Spalte.
    Hinweis:
    Dieses Array muss einen Namen haben, z. B. "{\"records\":[{\"hostname\": \"Hostname1\", \"serialnumber\": \"2acd3873-7fc5-454c-8844-e7769e4d6cfc\", \"model\": \"Modell-ID"},{\"vendor\": \"ABC Co\"}]}".

    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.

    Tabelle : 4. Anforderungskopfzeilen
    Kopfzeile Beschreibung
    Akzeptieren Datenformat des Antworttexts. Unterstützte Typen: application/json oder application/xml.

    Standard: application/json

    Content-Type Datenformat des Anforderungstexts. Unterstützte Typen: application/json oder application/xml.

    Standard: application/json

    Tabelle : 5. Antwortkopfzeilen
    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 HTTP-Antwortcodesder REST-API.

    Tabelle : 6. Statuscodes
    Statuscode Beschreibung
    201 Erstellt Der Datenquelle wurde ein Anhang hinzugefügt.
    202 Akzeptiert. Der Importsatztabelle wurden Zeilen 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 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.

    Parameter des Antworttexts (JSON oder XML)

    Name Beschreibung
    Fehler Beschreibt einen aufgetretenen Fehler.

    Datentyp: Objekt

    "error": {
      "details": "String",
      "message": "String"
    }
    Fehler.Details Zusätzliche Informationen zum Fehler.

    Datentyp: Zeichenfolge

    Fehlernachricht Meldung, in der der Fehler beschrieben wird.

    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 Datenquellen-Datensatzes, 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"
      }
    }