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

    Grundsätzliches zur Nutzung der i-doit API

    Scheduled Pinned Locked Moved Betrieb
    8 Posts 5 Posters 1.9k 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.
    • T Offline
      ThomasH
      last edited by

      Hallo,

      wir würden gern die API von i-doit nutzen. Bisher hatte ich noch keinerlei Berührungspunkte mit JSON-RPC oder ähnlichem, was mich nun vor eine große Herausforderung stellt. Ich habe schon versucht mit der Knowledgebase (https://kb.i-doit.com/pages/viewpage.action?pageId=7831613) weiter zu kommen und auch noch weitere Beispiele gesucht, aber leider ohne Erfolg.

      Wir nutzen i-doit auf einem Windows Server mit XAMPP (da haben wir unsere Gründe für).

      Als erstes habe ich in i-doit die Schnittstelle konfigurier (Verwaltung → Schnittstellen / externe Daten → JSON-RPC API).
      bc734b0f-24b1-4e1b-9ae0-c088ee85f111-image.png

      Anschließend wollte ich nun die API testen. Hierzu habe ich mir curl für Windows heruntergeladen und auf einem Client im Netz entpackt.

      Als erstes wollte ich mich nun gern mit einem User an der API anmelden, aber bereits da scheitert es schon. Folgenden Befehl habe ich aufgerufen:

      curl -H 'Content-Type: application/json' -H 'X-RPC-Auth-Username: apiuser' -H 'X-RPC-Auth-Password: passwort https://idoitserver.mydomain.de/src/jsonrpc.php --data-ascii '{"version": "2.0","params": {"apikey": "test1234"}, "id": "1", "method": "idoit.login" }'
      

      Folgender Response wird geliefert:

      curl: (6) Could not resolve host: application
      curl: (6) Could not resolve host: api'user
      curl: (6) Could not resolve host: test1234'
      {"id":null,"jsonrpc":"2.0","error":{"code":-32600,"message":"Invalid request : T
      his is not a JSON-RPC. The content-type should be application\/json, request met
      hod should be \"post\" and the http body should be a valid json-rpc 2.0 package.
      ","data":null}}curl: (6) Could not resolve host: 2.0,params
      curl: (3) unmatched brace in URL position 1:
      {apikey:
       ^
      curl: (3) unmatched close brace/bracket in URL position 12:
      test1234},
                 ^
      curl: (6) Could not resolve host: id
      curl: (6) Could not resolve host: 1,
      curl: (6) Could not resolve host: method
      curl: (6) Could not resolve host: idoit.login
      curl: (3) unmatched close brace/bracket in URL position 1:
      }'
       ^
      

      Wie gesagt, es ist Neuland für mich und als komplett unbedarfter in dem Bereich, komm ich mit der KB leider nicht wirklich weiter.

      Es würde mich freuen wenn mir jemand Hilft, Licht ins Dunkel zu bekommen.

      LG
      Thomas

      1 Reply Last reply Reply Quote 0
      • F Offline
        franknagel
        last edited by

        Ich vermute es liegt an der verwendeten shell: CMD.exe kann nicht mit single quotes umgehen. Powershell sollte besser funktionieren. Ich würde allerdings in Ihrem Fall für erste Experimente eher einen grafischen Client wie z.B. Insomnia empfehlen.

        1 Reply Last reply Reply Quote 0
        • T Offline
          ThomasH
          last edited by

          Hallo,

          wenn einem die Syntax nicht klar ist, dann hilft einem auch ein weiteres Tool nix.
          Hat evtl. jemand für die Powershell oder Insomnia Beispiele?

          LG

          1 Reply Last reply Reply Quote 0
          • T Offline
            ThomasH
            last edited by

            Ist hier keiner, der mir eine einfache API Anfrage als Muster schicken kann?

            habe folgendes probiert:

            curl -d '{"jsonrpc":"2.0","method":"idoit.version","params":{"apikey":"APIKEY"} }' -H "Content-Type: application/json" "https://idoittestdomain.de/src/jsonrpc.php
            

            Folgender Response kommt:

            curl: (3) unmatched close brace/bracket in URL position 1:
            }'
             ^
            {"id":null,"jsonrpc":"2.0","error":{"code":-32600,"message":"Invalid request : P
            rovided request is not a valid json rpc.","data":null}}
            

            Leider funktioniert dies nicht.
            In der i-doit Konfig habe ich einen API Key vergeben und die Authentifizierung mit Benutzernamen und Passwort zum Test deaktiviert.

            Viele Grüße
            Thomas

            1 Reply Last reply Reply Quote 0
            • F Offline
              FlatErik
              last edited by

              Hallo! Ich habe das selbe Problem. Konnte es gelöst werden?

              1 Reply Last reply Reply Quote 0
              • JulianJ Offline
                Julian
                last edited by

                Evtl. die Windows Firewall die hier blockiert?

                1 Reply Last reply Reply Quote 0
                • F Offline
                  FlatErik
                  last edited by

                  Ich denke eher nicht. Meiner Meinung deutet die Fehlermeldung eher darauf hin, dass an der syntax was falsch ist.. ('not a valid json rpc') Vielleicht werden die Gänsefüßchen oder klammern falsch aufgelöst? ich sende den curl befehl über die cmd.exe. Hat noch jemand eine Idee? VG!

                  1 Reply Last reply Reply Quote 0
                  • Philipp HörselmannP Offline
                    Philipp Hörselmann
                    last edited by

                    Moin @FlatErik
                    bitte passe das Beispiel einmal an und teste es bitte. 😉
                    Sollte funktionieren 🙃

                    curl --data '{"version": "2.0","method": "idoit.version","params": {"apikey":"YOU_API_KEY","language": "en"},"id": 1}' --header "Content-Type:application/json" --user USER:PASSWORD http://YOUR_I-DOIT_URL/src/jsonrpc.php
                    
                    

                    Ich habe den Parameter --user hier drin, da ich einfach BasicAuth + "Erzwinge Login" eingeschaltet habe 😉
                    Solltest du ggf. anpassen.

                    VG
                    Phil

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