Eines meiner nächsten Projekte soll die Erweiterung des SerienRecorder Plugins um ein Webinterface sein. Vor Jahren hatte betonme schon mal ein paar Grundlagen geschaffen (auf Basis des AutoTimer Webinterfaces), auf die ich jetzt aufbauen möchte. Im Moment fehlen mir aber noch viele Zusammenhänge und ich hoffe, dass hier jemand ein paar Dinge erklären kann. Bisher habe ich mich als User auch noch nicht wirklich mit dem Webinterface beschäftigt.
Was ich hoffe richtig verstanden zu haben, dass ein Plugin das Webinterface um zwei Bereiche erweitern kann, einmal API und einmal UI. Dabei ruft der UI Teil dann Funktionen der API auf.
Im SerienRecorder hat betonme damals Grundlagen für die API geschaffen, dazu wurde mit addExternalChild Funktionen bereitgestellt. Der Code dahinter funktioniert aber, wegen diverser Änderungen am Plugin, inzwischen nicht mehr. Deswegen möchte ich im ersten Schritt die API wieder funktionsfähig machen, ich habe jetzt die Funktionen so umgebaut, dass sie erstmal Dummy Results liefern.
Meine Fragen sind jetzt:
- Wie kann ich die Funktionen testen, ohne dass das Plugin schon ein WebUI hat?
Ich hab gelesen, dass man wohl /api/<function> aufrufen kann, da bekomme ich aber immer 404 zurück, wobei ich nicht mal genau weiß wie die Funktionen heißen und ob noch ein zusätzlicher Namespace davor muss. addExternalChild( ("serienrecorder", root , "SerienRecorder-Plugin", API_VERSION, False) ) Ist denn "serienrecorder" ein zusätzlicher Namespace (/api/serienrecorder/<function>)? - Es gibt diverse Ordner im Zusammenhang mit dem WebInterface - kann da mal jemand kurz erklären was welcher Ordner enthalten muss?!
"web-data" scheint quasi der Webserver Root des Plugins zu sein, mit den Templates und Javascript Dateien - Gibt es irgendwo ein Art "Hello World" Plugin für das Webinterface, mit dem man einsteigen kann oder eine Dokumentation?
- Gibt es Unterschiede die man bei der Entwicklung berücksichtigen zum OpenWebIf - das Webinterface soll dann möglichst auf allen Boxen laufen?
Hier ist noch ein Link zur SerienRecorderResource.py die von betonme erstellt wurde: https://github.com/einfall/ser…SerienRecorderResource.py
Danke fürs Lesen!