Community
    • Categories
    • Recent
    • Popular
    • Users
    • Search
    • Register
    • Login

    REST API - Parent oder Children finden

    Scheduled Pinned Locked Moved Entwicklung
    3 Posts 3 Posters 434 Views 1 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • F Offline
      frafu
      last edited by

      Hallo!

      Über die REST API kann ich ja sehr schön einzelnen Objekte auslesen.
      Wie finde ich raus, welche "Floors" zu welchem "Building" gehören? Dazu finde ich einfach nichts.

      zb:
      Dieser Request:

      {
      "version": "2.0",
      "method": "cmdb.object.read",
      "params": {
      "id": 41,
      "apikey": "c1ia5q",
      "language": "en"
      },
      "id": 1
      }

      liefert dieses Objekt:

      {
      "id": 1,
      "jsonrpc": "2.0",
      "result": {
      "id": 41,
      "title": "Basement",
      "sysid": "FLOOR_0000041",
      "objecttype": 88,
      "type_title": "Floor",
      "type_icon": "room.gif",
      "status": 2,
      "cmdb_status": 6,
      "cmdb_status_title": "in operation",
      "created": "2015-02-20 15:56:30",
      "updated": "2015-09-10 14:43:58",
      "image": "https://demo.i-doit.com/images/objecttypes/room.png"
      }
      }

      Das ist ein Floor der an einem Building hängt. Wie sehe ich das über die API?

      lg
      Frafu

      MartinVM 1 Reply Last reply Reply Quote 0
      • MartinVM Offline
        MartinV @frafu
        last edited by

        Da "Floor" und "Building" mit dem Standort zusammenhängt, wäre wohl die Methode cmdb.location_tree.read die richtige. Die funktioniert aber m.W. nur "abwärts" von der Location Root (Object-ID 1) aus. Eventuell kommt man auch mit cmdb.objects_by_relation.read weiter. Dafür müsste man aber die Konstante für den relation_type kennen (die m.W. nirgends richtig dokumentiert sind).

        1 Reply Last reply Reply Quote 1
        • LFischerL Offline
          LFischer
          last edited by

          Hallo zusammen,

          @MartinV hatte es richtig erkannt - um die zugewiesenen Standorte eines Objekts zu erhalten braucht man die Methode cmdb.location_tree.read hier kann man mittels Parameter id entscheiden wessen "children" man sehen möchte.

          Also z.B.

          {
              "version": "2.0",
              "method": "cmdb.location_tree.read",
              "params": {
                  "id": 1234,
                  "apikey": "<key>"
              },
              "id": 1
          }
          

          Im Ergebnis erhält man dann ein Array mit allen direkt zugewiesenen Objekten, die Daten schauen dabei so aus (pro Objekt):

          [
              {
                  "id": 302,
                  "title": "0.01 Office",
                  "sysid": "ROOM_00000302",
                  "type": 26,
                  "type_title": "Room",
                  "status": 2,
                  "cmdb_status": 6,
                  "cmdb_status_title": "in operation"
              },
              {
                  "id": 1073,
                  "title": "pool.ntp.org",
                  "sysid": "CLOUD_0001073",
                  "type": 39,
                  "type_title": "Host",
                  "status": 2,
                  "cmdb_status": 6,
                  "cmdb_status_title": "in operation"
              },
          
              ...
          ]
          

          Viele Grüße
          Leo

          1 Reply Last reply Reply Quote 1
          • First post
            Last post