RESTful-Anwendung auf Google App Engine Java?


82

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!


Technicalrex.com/2014/08/11/… und javacodegeeks.com/2012/05/… sind die besten Informationen zur Integration von Jersey GAE.
Md. Sajedul Karim

Es ist eine Frage der Wahl des Frameworks, an das wir in unserer Entwicklung gewöhnt sind. Ich habe Spring MVC sowohl mit objectify als auch mit Hibernate verwendet und es funktioniert auch einwandfrei mit Google App Engine.
Ankur Jain

@AnkurJain ja, in 7 Jahren hat sich viel verändert.
JP Richardson

Antworten:


45

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.


4
Der obige Link ist jetzt defekt. Der GAE-relevante Link für Restlet 2.2 lautet restlet.org/learn/guide/2.2/editions/gae
George Hawkins


6

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.


1
Ich bin mir ziemlich sicher, dass Restlet funktionieren wird. Es ist nur ein bisschen unangenehmer als die anderen. Ich mag besonders die Anmerkungen, die Jersey einführt. Ich plane, Restlet in den nächsten Wochen zu verwenden. Ich werde auf jeden Fall ein Update veröffentlichen.
JP Richardson

Ich habe das Wochenende damit verbracht, auch damit herumzuspielen, und Restlet funktioniert hervorragend bei GAE. Ich konnte nach dem Beispiel auf der Restlet-Site unter der URL, die ich zuvor hinterlassen habe und die jetzt nicht mehr verfügbar ist, etwas zusammenstellen. Aber es war trivial, alles einzurichten.
Broschb

Ich habe einen kleinen Beitrag in meinem Blog geschrieben, um eine weitere Frage zum Stackoverflow zu beantworten. Es wird ein sehr einfaches Beispiel für die Inbetriebnahme von Restlet auf GAE gegeben. broschb.blogspot.com/2009/08/…
broschb

1
Restlet hat jetzt eine JAX-RS-Implementierung. Sie haben auch damit begonnen, Builds speziell für die Verwendung in AppEngine zu verteilen. Sie möchten den neuesten 2.0-Meilenstein verwenden (derzeit 2.0m4). Ich habe dies gerade als Proof of Concept für eine neue App eingerichtet, die gerade erstellt wird. Ich würde nicht empfehlen, die Restlet-eigene API zu verwenden, da diese radikal allgemein, übermäßig abstrahiert und nur allgemein verwirrend ist. restlet.org/downloads/2.0/restlet-gae-2.0m4.zip
Mark Renouf



3

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


2

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).


Ich möchte Sie fragen, ob Sie eine Lösung für meine Frage hier stackoverflow.com/questions/32699420/… danke u
Marco Dinatsoli

2

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...


Das Spiel sieht sehr beeindruckend aus. Die Integration in GAE sieht jedoch nicht so aus, als würde sie im Hauptprojekt beibehalten, und bleibt daher hinter dem Veröffentlichungszyklus von GAE zurück. Das GWT-Plugin scheint noch weiter zurückzubleiben. Trotzdem gebe ich dir eine Gegenstimme dafür, dass du mir so ein cooles Projekt gezeigt hast.
JP Richardson

Das Gae-Modul wurde entwickelt und wird vom Hauptentwickler verwaltet. Das Siena-Modul (empfohlen für Gae, JPA hat viele Probleme) wird von einem sehr aktiven Mitglied der Community verwaltet. Leider erhält das GWT-Modul nicht so viel Aufmerksamkeit Tat ...
eröffnet am

Das Gae-Modul ist wieder auf Kurs! Ein anderer Entwickler hat sich darum
gekümmert.

2

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.


1

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


-1

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.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.