I-Doit API cmd.category.save Einträge Aktualisieren



  • Hallo zusammen, ich habe eine Frage zur Aktualisierung der Kategorien über die API von I-Doit. Konkret versuche ich gerade Informationen über Festplatten / Dateisysteme via API von einem Objekt zu aktualisieren.

    Aufurf:

    {
        "version": "2.0",
        "method": "cmdb.category.save",
        "params": {
            "object": 9241,
            "data": {
                "title": "sda",
                "mount_point" : "/",
                "system_drive": "Yes",
                "filesystem": "EXT4",
                "capacity": 500,
                "unit": "GB",
                "serial": "",
                "assigned_raid": null,
                "drive_type": "1",
                "device": null,
                "raid": null,
                "ldev": null,
                "category_const": "",
                "free_space": null,
                "free_space_unit": null,
                "used_space": null,
                "used_space_unit": null,
                "firmware": null,
                "description": "Created WITH API"
            },
            "category": "C__CATG__DRIVE",
            "apikey": "API-KEY",
            "language": "en"
        },
        "id": 1
    }
    

    Der Rückgabewert des Requests ist, wie erwartet folgender:

    {
        "id": 1,
        "jsonrpc": "2.0",
        "result": {
            "success": true,
            "message": "Category entry successfully saved",
            "entry": 107
        }
    }
    

    Wenn ich diesen Request jetzt jedoch zweimal ausführe, so wird der vorherige Eintrag nicht aktualisiert, sondern es werden 2 Einträge erstellt.

    Folglich stellt sich mir die Frage, wie kann ich über die cmb.category.save Methode Einträge eines Objektes aktualisieren?


  • i-doIT Team

    Moin @lewando
    in der Ausgabe wird eine entry-ID angegeben, welche du für ein Update des bestehenden Eintrages benötigst.
    Wenn du jetzt den folgenden Request um die entry-ID erweiterst, wird dieser Eintrag aktualisiert:

    "version": "2.0",
        "method": "cmdb.category.save",
        "params": {
            "object": 9241,
            "entry": 107,     <---------------
            "data": {
                "title": "sda",
                "mount_point" : "/",
                "system_drive": "Yes",
                "filesystem": "EXT4",
                "capacity": 500,
                "unit": "GB",
                "serial": "",
                "assigned_raid": null,
                "drive_type": "1",
                "device": null,
                "raid": null,
                "ldev": null,
                "category_const": "",
                "free_space": null,
                "free_space_unit": null,
                "used_space": null,
                "used_space_unit": null,
                "firmware": null,
                "description": "Created WITH API"
            },
            "category": "C__CATG__DRIVE",
            "apikey": "API-KEY",
            "language": "en"
        },
        "id": 1
    }
    

    Damit kannst du dann den Eintrag aktualisieren 😉
    VG
    Phil



  • @Philipp-Hörselmann
    Ah super vielen Dank für die schnelle Hilfe 😊

    Ich hab mich schon gefragt, wofür die Entry (ID) da ist, aber die DOKU erzeugte bei mir eher Fragezeichen xD (Da ich zunächst mit der Beschreibung "Eintragsidentifikator" die Verbindung zur Nutzung im Request nicht gezogen habe)

    Es ist zwar etwas unglücklich das man keine weiteren Identifikatoren nutzen kann, aber gut so muss ich zunächst das Objekt abfragen, bevor ich es aktualisieren kann, auch gut. (Weil im Anwendungsfall den ich gerade versuche umzusetzen, sind mir die Daten bereits bekannt, ich muss diese nur noch auf den passenden API Call mappen um diese zu aktualisieren.)


Log in to reply
 


Datenschutz / Privacy Policy