Community

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

    Grundsätzliches zur Nutzung der i-doit API

    Betrieb
    5
    8
    821
    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
      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
        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
          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
            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
              FlatErik last edited by

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

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

                Evtl. die Windows Firewall die hier blockiert?

                1 Reply Last reply Reply Quote 0
                • F
                  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örselmann
                    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