Grundsätzliches zur Nutzung der i-doit API



  • 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



  • 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.



  • 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



  • 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


Log in to reply
 


Datenschutz / Privacy Policy