Community

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

    Auslesen der Report ID's über die JSON API

    Entwicklung
    2
    6
    252
    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
      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?

      LFischer 1 Reply Last reply Reply Quote 0
      • LFischer
        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
          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

          LFischer 1 Reply Last reply Reply Quote 0
          • LFischer
            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
            • LFischer
              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
                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