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

    Auslesen der Report ID's über die JSON API

    Scheduled Pinned Locked Moved Entwicklung
    6 Posts 2 Posters 381 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.
    • O Offline
      omueller
      last edited by

      Wie kann ich alle Report ID's über die JSON API Auslesen? Mit einer der älteren Versionen von i-doit hat das schon mal wunderbar funktioniert aber anscheinend wurde hier ein bisschen umgebaut und meine Abfrage liefert einen Error 500 zurück. Mein Code dazu sieht aktuell so aus:

      $curl = curl_init();
      $settings = $this->getSettings();
      $apiKey = $settings['idoit-api-key'];
      $apiURL = $settings['idoit-api-url'];

          $postfields = [
              'version'      => '2.0',
              'method'       => 'cmdb.reports',
              'id'           => 1,
              'params'       => [
                  'apikey'    => $apiKey,
                  'language'  => 'de'
              ],
          ];
      
          $postfieldsJson = json_encode($postfields);
      
          curl_setopt($curl, CURLOPT_URL, $apiURL);
          curl_setopt($curl, CURLOPT_FAILONERROR,true);
          curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST');
          curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
          curl_setopt($curl, CURLOPT_POSTREDIR, (1 | 2));
          curl_setopt($curl, CURLOPT_FRESH_CONNECT, true);
          curl_setopt($curl, CURLOPT_REDIR_PROTOCOLS, (CURLPROTO_HTTP | CURLPROTO_HTTPS));
          curl_setopt($curl, CURLOPT_POSTFIELDS, $postfieldsJson);
          curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
          curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);
          curl_setopt($curl, CURLOPT_SSLVERSION, CURL_SSLVERSION_DEFAULT);
          curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
          curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 10);
          curl_setopt($curl, CURLOPT_ENCODING, 'application/json');
          curl_setopt($curl, CURLOPT_HTTPHEADER, array(
              'Content-Type: application/json',
              'Expect: 100-continue'
          ));
      
      
          $response = curl_exec($curl);
      

      Woran könnte das liegen bzw. was hat sich geändert?

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

        Hallo @omueller

        ich kann mich da ad-hoc an keine konkrete Änderung erinnern, das müsste ich ggf. mal in unserem Repository nachsehen. Einen Server-Fehler sollte die API allerdings nicht zurück liefern!

        Hast du ggf. ein paar mehr Informationen zum gemeldeten Fehler? Könntest du mir auch die i-doit + API Add-on Versionen mitteilen? Ich weiß nur das in i-doit 1.13.1 die Reports von der System- in die Mandanten-DB migriert wurden... Vielleicht handelt es sich hier um einen Folgefehler?

        Viele Grüße
        Leo

        O 1 Reply Last reply Reply Quote 0
        • O Offline
          omueller @LFischer
          last edited by

          Hallo @lfischer,

          aktuell entwickle ich mit der i-doit Version 1.16. Die Version des API Add On weiß ich leider nicht. Wo kann ich das nachschauen? Ich bekomme vom API Call immer nur einen Fehler 500 zurück. Ich schließe mich aber auch nochmal mit meinem Auftraggeber kurz, ob auf dem System irgendwas speziell konfiguriert ist.

          Viele Grüße Oliver

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

            Hallo @omueller

            die Add-on Version siehst du nur im Admin-Center, ich bin leider noch nicht dazu gekommen das Problem selbst zu prüfen... Ich denke aber ich kann mir später ein wenig Zeit nehmen 🙂

            Wenn ich das Problem reproduzieren kann sollte es schnell zu lösen sein!

            VG Leo

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

              Hello again,

              ich hatte jetzt ein wenig Zeit das Verhalten zu prüfen - bei mir gibt es keinerlei Fehler, die API Methode liefert die Liste meiner Reports zurück, wie erwartet 🤔

              Konntest du mittels Error-Log herausfinden wo das Problem liegt? Eine konkrete Fehlermeldung könnte uns hier weiterhelfen 🙂

              VG Leo

              O 1 Reply Last reply Reply Quote 0
              • O Offline
                omueller @LFischer
                last edited by

                Hallo @lfischer,

                nach mehreren Tagen Fehleranalyse konnte ich den Fehler jetzt endlich finden. Der Error-Log an mir an der Stelle den entscheidenden Hinweis gegeben. Das Problem war eine fehlerhaft eingebundene Klasse. Diese habe ich nun entfernt und schon werden auch die Reports wieder angezeigt.

                Vielen Dank für die Unterstützung.

                Beste Grüße
                Oliver

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