2014-09-16 20 views
7

Ich habe eine laufende Wt-Anwendung basierend auf den Tutorials im ganzen Web und ich frage mich, ob es eine elegante Möglichkeit gibt, mit Wt eine Restful API-Funktionalität hinzuzufügen.Wie bekomme ich Restful API mit Wt

Ich habe ein paar Ressourcen, die ich aus meiner aktuellen Anwendung aussetzen kann und ich möchte keine Patches implementieren.

Wenn jemand eine gute Idee hat, wie man das macht, oder sogar einen Vorschlag für eine JSON-Bibliothek, die die Entwicklung zu einem Kinderspiel machen kann, wäre ich sehr dankbar.

Antwort

6

Sie sollten die Unterklasse WResource ableiten und die WResource::handleRequest-Methode implementieren, um die REST-API-Funktionalität bereitzustellen. Dann sollten Sie Ihre Ressource zu Ihrem Server hinzufügen, indem WServer::addResource

Auch sollten Sie sicherstellen, dass Sie Ihre Ressource auf dem Server vor dem Haupt Wt appliaction Eintrittspunkt hinzufügen:

Wt::WServer server(argv[0]); 
server.setServerConfiguration(argc, argv, WTHTTP_CONFIGURATION); 
server.addResource(new MyResource, "/api")); 
server.addEntryPoint(Wt::Application, createApplication); 
+0

Danke, wirkt wie ein Zauber –

+0

Warum Ist es wichtig, die Ressource vor dem Einstiegspunkt hinzuzufügen? – Matt

+0

Oh, implementiert es wie http://redmine.webtoolkit.eu/boards/2/topics/4358, aber mit einem "WApplication" -Eintrittspunkt, dann versucht es bei jeder Pfadaktualisierung, 'addResource()', was löst einen schwerwiegenden Fehler aus. Die Implementierung dieser Antwort aus irgendeinem Grund hat mich daran gehindert, aus meiner Konfigurationsdatei zu lesen. – Matt