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).
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 -
Hallo! Ich habe das selbe Problem. Konnte es gelöst werden?
-
Evtl. die Windows Firewall die hier blockiert?
-
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!
-
Moin @FlatErik
bitte passe das Beispiel einmal an und teste es bitte.
Sollte funktionierencurl --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