NEWS
Rest-API - Verständnisproblem
-
Der Titel ist etwas beschränkt, daher hier mein Ansinnen mit ein paar mehr Worten. Ich habe seit geraumer Zeit den Simple-Api im Einsatz, hauptsächlich um Daten von ESPxx ins Sytem zu bekommen. Es hat mal irgendwo geheißen, dass 'man' mittelfristig auf den leistungsfähigerern Rest-API umsteigen sollte.
Mit der Swagger-Seite komme ich so nicht wirklich zurecht. Erster Versuch war das Auslesen eines States. http://192.168.69.112:8093/v1/state/0_userdata.0.Test.Werte.Value liefert mir den richtigen Wert. Nun möchte ich diesen Wert mit einem anderen Wert überschreiben. Und hier komme ich nicht weiter. Der Versuch im Swagger via 'patch' den Wert zu setzen schlägt fehl. Mögliche Fehlermeldung:{ "id": "0_userdata.0.Test.Werte.Value", "error": "Error: The state contains no properties! At least one property is expected!" }
Wie ich dann den http-Befehl in den ESP bekomme ist dann noch die zweite Baustelle.
Das ist übrigens nicht der erste Versuch mit Rest-API, ich habe bisher immer erfolglos abgebrochen. Muss doch gehen oder denke ich hier völlig falsch?
-
@rene55 sagte in Rest-API - Verständnisproblem:
Nun möchte ich diesen Wert mit einem anderen Wert überschreiben. Und hier komme ich nicht weiter
Das ist eigentlich trivial.
https://github.com/ioBroker/ioBroker.simple-api?tab=readme-ov-file#set
http://ipaddress:8087/set/javascript.0.test?value=1
-
@codierknecht Wenn ich das richtig sehe, ist das aus dem Simple-API und nicht für den Rest.-API.
-
@rene55
Stimmt - habe ich auf die Schnelle verwechselt. -
@codierknecht Alles gut. Ich hatte auch nicht auf eine schnelle Antwort gehofft.
-
@rene55 sagte in Rest-API - Verständnisproblem:
Ich hatte auch nicht auf eine schnelle Antwort gehofft
Warum nicht?
-
Schau mal mit den Web Developer Tools,
Ob da auch die richtige http Methode verwendet wird -
Ach schau mal
Hier gibts ein issue dazu
https://github.com/ioBroker/ioBroker.rest-api/issues/54Wenn du es selbst programmierst kannst du ja den richtigen Header setzen
-
@oliverio
Wobei man für das einfache Setzen eines State japatch
auch gar nicht benötigthttp://192.168.179.13:8093/v1/command/setState?id=0_userdata.0.Test.differenz&state=42
-
Wenn er bei simple api bleibt.
Der arbeitet nur mit der get Methode und was gemacht werden soll steht in der Adresse als Parameter drin.Rest api und simple api sind unterschiedlich.
Das eine ist direkt im Admin eingebaut, das andere ist ein zusätzlicher Adapter -
@codierknecht Erster Erfolg: mit http://192.168.69.112:8093/v1/command/setState?id=0_userdata.0.Test.Werte.Value&state=41 funktioniert es.
-
@oliverio sagte in Rest-API - Verständnisproblem:
Wenn er bei simple api bleibt.
Bleibt er ja nicht. Er hat Rest-API ... so wie ich in meinem letzten Beispiel auch.
-
@oliverio Ich schau mir den Issue mal an. Vllt. bin ich dann schlauer.
-
Dann sorry, sieht zu ähnlich aus
Bei echtem Rest wäre aber so ein Befehl unnötigAber ist halt alles philosophisch die Unterscheidung
-
@oliverio sagte in Rest-API - Verständnisproblem:
sieht zu ähnlich aus
Darum komme ich da auch ständig durcheinander
-
@codierknecht Jetzt muss ich nur noch schauen, wenn es für API einen Benutzer mit Password gibt. Im Simple-Api wurde es einfach hinten angehangen.
-
@rene55 sagte in Rest-API - Verständnisproblem:
wenn es für API einen Benutzer mit Password gibt
Wer macht denn sowas?
Basic-Authentication müsste wohl als zusätzlicher Header mitgegeben werden.
-
@oliverio Schön das der Issue #54 schon aus 2023 ist. Aber nach meinem Denken ist ja schon die http-Befehlszeile im Swagger nicht korrekt, da steht nichts von 'patch' drin.
-
@codierknecht Ja, mit ein Grund, auf was 'modernes' umzusteigen! Wobei ich dann noch erlernen muss, wie ich denn im ESP einen curl abgesetzt bekommen - andere Baustelle (aber gehört ins Gesamtpaket).
-
Nix curl
Da verwendest du die http Bibliothek.
Die kann das.