Ich möchte eine RESTful-App in Google App Engine erstellen. Ich möchte XML- und JSON-Dienste bereitstellen. Ich habe kurz mit Restlet, Resteasy und Jersey experimentiert. Ich habe mit keinem von ihnen viel Erfolg gehabt, abgesehen von einigen einfachen Beispielen in Restlet.
Können Sie uns Ihre Erfahrungen beim Erstellen einer Restful-Webanwendung in Google App Engine mit Java mitteilen oder einen Einblick in die oben genannten Toolkits in GAE geben?
Vielen Dank!
Bearbeiten (2009-07-25):
Ich habe mich vorerst für Restlet entschieden. Bisher scheint es einwandfrei zu funktionieren. Bitte posten Sie weitere Erkenntnisse / Meinungen. Auf welche Probleme sind Sie gestoßen? Haben Sie Jersey / Restlet / Resteasy erfolgreich auf GAE / J verwendet? Wenn ja, wollen wir davon hören!
Antworten:
Ich freue mich, Ihnen mitteilen zu können, dass Restlet M3 unter AppEngine 1.2.2 FLAWLESSLY funktioniert. Ich habe die Tutorials "Erste Schritte" und "Erste Ressource" unter http://restlet.com/technical-resources/restlet-framework/guide befolgt .
Daher scheint mir Restlet die Antwort für Ihre GAE / J Restful-Anwendungen zu sein.
quelle
Ich benutze Jersey bei GAE. Hier ist der Link für diejenigen, die daran interessiert sind, es einzurichten: (Ich verwende GAE SDK v1.4.0):
http://tugdualgrall.blogspot.com/2010/02/create-and-deploy-jax-rs-rest-service.html
quelle
Ich werde dies ebenfalls untersuchen, habe aber noch nicht begonnen. Ich habe dieses Framework gefunden, das besagt, dass es funktionieren sollte, aber wie gesagt, ich habe es noch nicht ausprobiert.
http://wiki.restlet.org/docs_1.2/13-restlet/275-restlet/252-restlet.html
Wenn Sie es zum Laufen bringen oder es schaffen, einen der oben genannten Vorschläge zum Laufen zu bringen, aktualisieren Sie alle, da ich sicher bin, dass Interesse daran besteht.
quelle
Ich verwende Restlet zusammen mit Guice in Google AppEngine. IMHO passen sie sehr gut zusammen. Weitere Informationen finden Sie in meinem letzten Blogbeitrag: http://haraldpehl.blogspot.com/2009/11/google-appengine-restlet.html
quelle
Da diese tapferen älteren Lösungen zusammen gepatcht wurden, hat Google anscheinend ein Eclipse-Plugin bereitgestellt, um ein Starterprojekt zu erstellen, das eine App Engine-App, eine Android-APK und eine Web-App erstellt, die alle über eine durch einen einzigen Satz definierte Schnittstelle miteinander kommunizieren von kommentierten Objektdeklarationen.
Ich habe es noch nicht selbst versucht, aber schauen Sie es sich an, bevor Sie eines der heterogeneren Beispiele ausprobieren, die in den vorherigen Nachrichten oben beschrieben wurden:
https://developers.google.com/eclipse/docs/appengine_connected_android
Dieses Google-Video ist auch sehr informativ:
http://www.youtube.com/watch?v=NU_wNR_UUn4
quelle
Für das, was es wert ist, gab es eine Menge Diskussionen auf Jersey-Benutzerlisten darüber, wie Jersey auf GAE funktioniert. Aufgrund von GAE-Einschränkungen (fehlende Klassen aus weißen Listen - hoffentlich im Laufe der Zeit behoben) ist die Arbeit etwas mühsam, kann aber anscheinend zum Laufen gebracht werden. Das ist zwar nicht ganz einfach, aber vielleicht die beste Wahl. insb. da viele der Probleme für alle Frameworks gleich sind (von GAE auferlegt).
quelle
Nun, ich würde Ihnen sehr raten, sich das Spiel-Framework anzuschauen
Schauen Sie sich das Video auf der Homepage an
Es hat ein Gae-Modul
Mit Siena als Orm für den Umgang mit Gae-Datenspeichern
Von all den Java-Frameworks, die ich bisher gesehen habe, denke ich, dass es die einfachere Lernkurve hat.
tolle Dokumentation ,
ein Tutorial zum Entwickeln einer vollständigen Anwendung
sehr aktive und hilfreiche Community,
frei wie in Bier und auch wie in Sprache
Hoch skalierbar, da es sofort einsatzbereit ist
ruhe freundlich
hochgradig anpassbar über seine Module und Plugin-Ansatz
Wenn man bedenkt, dass es sich um einen College-Kurs handelt, ist es wirklich einfach, sich in den Code zu hacken. Ich könnte ein paar Tickets und neue Funktionen ohne jegliche Erfahrung mit Java verarbeiten, nur ein paar Jahre, um Webanwendungen mit PHP zu entwickeln
andere Vorteile
Es ist wirklich einfach zu starten, ohne komplizierte Einrichtung. Laden Sie einfach die Datei herunter und entpacken Sie sie
Tolle Entwicklungserfahrung, korrigieren Sie einfach den Code und klicken Sie auf Aktualisieren. Spielen Sie Änderungen im Autokompilieren im laufenden Betrieb, wenn Sie im Entwicklungsmodus ausgeführt werden
schnell und leicht
Fullstack, Sie müssen keine umständlichen Frameworks integrieren, damit es funktioniert
Großer Fehlerbericht, keine endlose Fehlerstapelverfolgung mehr, zeigt Ihnen nur die fehlerhafte Zeile
Keine XML-Konfiguration
Tolle Unterstützung für tdd mit integriertem Selentest
Ich denke, der Hauptvorteil als Lernwerkzeug besteht darin, dass es möglich ist, in den Quellcode zu schauen, ohne sich verloren zu fühlen und die Community zu unterstützen ... Die Dokumentation ist sehr klar, und Sie können viel lernen, indem Sie sich nur die Quelle ansehen Code...
quelle
Ich habe kürzlich eine Projektvorlage mit Jersey, Guice und AppEngine bei GitHub zusammengestellt. Es wurde mit SimpleDS entwickelt, kann jedoch so geändert werden, dass es problemlos mit Objectify / JDO funktioniert. Das Projekt ist hier live .
Es sollte ein guter Ausgangspunkt für neue Projekte sein.
quelle
Hier ist ein sehr sehr gutes Tutorial Restlet / Android / GAE / Objectify mit einem Beispiel einer einfachen Anwendung. Es tut uns leid, es ist auf Französisch, aber Sie können den Code einfach kopieren / einfügen oder Google Traduction verwenden.
Ich folgte ihm und hatte einen funktionierenden Android / GAE-Server, der innerhalb von 2 Stunden miteinander kommunizierte. Es ist eine gute Basis, um Restlet zu starten oder zu testen.
http://www.tutos-android.com/webservice-rest-android-appengine-restlet-objectify
Viel Glück
quelle
Die 2 umständlichsten GAE REST-API-Aktionen, mit denen Java oder .py funktioniert, sind Grafiken und das Anzeigen der Anzeige privater Informationen. Mein kleines Gae-Restfutter gabelte ein anderes Projekt. Ich bin sicher, dass Java dort erfolgreich ist, wo Python aufgrund von Java stecken bleibt und mehr Möglichkeiten (Vorteile) sowie eine längere (langsamere) Zeit für den Erfolg (Nachteil) bietet, während Python-Projekte weniger Möglichkeiten für den Erfolg (Nachteil) und weniger Entwicklungszeit eröffnen (Nachteil). vorteilhafte schnelle Entwicklung), um das gleiche zu erreichen.
quelle