Thema:
M!service Version 1.0 auf GitHub flat
Autor: Stitch
Datum:18.11.14 11:58
Antwort auf:Maniac-Forum für Android, iOS, Windows Phone und Co. von Leviathan

Dieser Post richtet sich an Entwickler von bestehenden alternativen Clients für's Maniac, die die es noch werden wollen und technisch Interessierte.
Die Idee dazu, was ich jetzt endlich mal umgesetzt habe und an dieser Stelle vorstellen möchte, hatte ich schon mal vor Ewigkeiten im alten Thread zur Verbesserung des Forums formuliert.

Also worum geht's? Entwickler von bestehenden externen Clients können sicher ein Lied davon singen, dass es keine wirkliche Freude ist sich mit der seltsamen und teilweise unlogischen Original "API" des pxmboards herumzuschlagen und vor allem das kaputte und antiquierte HTML zu parsen um die jeweiligen Daten herauszulesen. Zusätzlich müssen alle Clients einzeln bei jeder Änderung der Forumssoftware angepasst werden. Das ist alles leider nicht geil.
Um dies in Zukunft zu vereinheitlichen, die Entwicklung weiterer neuer Clients zu vereinfachen und die Wartbarkeit bestehender Clients zu erhöhen habe ich den M!service entwickelt und als OpenSource veröffentlicht.

M!service ist ein Serverdienst, der eine RESTful JSON API für das Man!ac Forum bereitstellt. Das bedeutet, anstatt wie bisher einfach HTTP Requests an das Original Forum zu stellen und dann die Daten innerhalb der Client App aus dem erhaltenen HTML herauszufummeln übernimmt diese Aufgabe der M!service und leitet sie in in strukturierter Form im JSON-Format an den Client weiter, so dass dieser sich alleine auf die Darstellung der jeweiligen Daten konzentrieren kann.

Ich hab das ganze zwar primär erstmal für meinen eigenen Client entwickelt (kommt gleich noch ein eigener Post), der Grund warum ich das ganze dokumentiert und auf GitHub gestellt habe ist aber, dass ich mich freuen würde, wenn zumindest ein paar der bereits länger existierenden Clients für die Benutzung des M!service umgeschrieben werden. Ein Fest wäre natürlich wenn sich in Zukunft ein paar Leute an der Entwicklung beteiligen oder zumindest mal etwas in den Code eintauchen würden um mir Feedback zu geben was man noch verbessern könnte.

Ein paar Sachen fehlen momentan noch zB Private Messages (dazu existiert schon ein Branch, den ich vorhin noch gepusht habe), Editieren des User Profils, Registrieren von neuen Usern, aber das steht auch alles noch auf der Liste für meinen eigenen Client und wird in naher Zukunft implementiert. Ein weiteres Feature, was ich priorisiert angehen möchte ist den gelesen Status der Postings pro User serverseitig zu speichern. Dann wäre dieser für den User unter allen Clients, die den M!service verwenden, synchron. Denkbar wäre auch die Entwicklung von Extensions für die gängigen Desktop-Browser um auch dort die gelesenen Posts mit den mobile Clients oder auch nur verschiedenen Rechnern synchron zu halten.

Der absolute Burner wäre, wenn wir Andi davon überzeugen könnten, den M!service direkt auf dem Forumsserver zu installieren. Dann könnte man sogar die ganzen frickligen Methoden im internen Parse Object komplett verbannen und direkt Queries auf die Datenbank feuern, was die Performance beachtlich steigern würde und nochmals mehr Robustheit gegenüber Änderungen an der Websoftware für die ganze Architektur mit sich bringen würde.

So genug gefaselt, wer bis hier hin gelesen hat und noch interessiert ist schaut's sich am besten mal an ;)
[https://github.com/Stitch7/mservice]

Stitch


< antworten >