Application RESTful sur Google App Engine Java?

Je voudrais créer une application RESTful sur Google App Engine. Je voudrais fournir des services XML et JSON. J’ai brièvement expérimenté avec Restlet, Resteasy et Jersey. Je n’ai eu beaucoup de succès avec aucun d’entre eux, hormis quelques exemples simples dans Restlet.

Pourriez-vous partager vos expériences de création d’une application Web Restful sur Google App Engine à l’aide de Java ou fournir des informations sur les kits d’outils susmentionnés sur GAE?

Merci!

Edit (2009-07-25):

J’ai décidé d’utiliser Restlet pour le moment. Cela semble fonctionner parfaitement jusqu’à présent. S’il vous plaît poster toutes les autres idées / opinions que vous pourriez avoir. Quels problèmes avez-vous rencontrés? Avez-vous utilisé avec succès Jersey / Restlet / Resteasy sur GAE / J? Si tel est le cas, nous voulons en entendre parler!

Je suis heureux d’annoncer que Restlet M3 fonctionne sans problème sur AppEngine 1.2.2. J’ai suivi les didacticiels “Premiers pas” et “Première ressource” disponibles à l’ adresse http://restlet.com/technical-resources/restlet-framework/guide .

Donc, il me semble que Restlet est la réponse pour vos applications GAE / J Restful.

J’utilise Jersey sur GAE. Voici le lien pour ceux qui sont intéressés à le configurer: (J’utilise GAE SDK v1.4.0):

http://tugdualgrall.blogspot.com/2010/02/create-and-deploy-jax-rs-rest-service.html

Je vais aussi commencer à explorer cela, mais je n’ai pas encore commencé. J’ai trouvé ce framework, qui dit que ça devrait marcher, mais comme je l’ai dit, je ne l’ai pas encore essayé.

http://wiki.restlet.org/docs_1.2/13-restlet/275-restlet/252-restlet.html

Si vous le faites fonctionner ou si vous parvenez à faire fonctionner l’une des suggestions ci-dessus, mettez à jour tout le monde car je suis certain que cela suscite un intérêt.

J’utilise Restlet avec Guice sur Google AppEngine. IMHO ils s’emboîtent très bien. Voir mon blog récent pour plus de détails: http://haraldpehl.blogspot.com/2009/11/google-appengine-restlet.html

Eh bien, je vous conseille vivement de jeter un oeil à la structure de jeu

Regardez la vidéo sur la page d’accueil

Il a un module gae

Avec siena comme un orm pour gérer le datastore gae

De tous les frameworks Java que j’ai vus jusqu’ici, je pense que la courbe d’apprentissage est plus facile,

  • bonne documentation ,

  • un tutoriel pour développer une application complète

  • communauté très active et utile,

  • libre comme dans la bière et aussi dans la parole

  • hautement évolutif grâce à son design sans état

  • rest amical

  • hautement personnalisable via ses modules et son approche de plugin

de plus, en prenant en compte que c’est pour un cours universitaire, il est vraiment facile de pirater le code, je pouvais gérer quelques tickets et de nouvelles fonctionnalités sans aucune expérience avec java, juste quelques années à développer des applications web avec php

autres bénéfices

  • c’est vraiment facile à démarrer, pas de configuration compliquée, téléchargez et décompressez le fichier et vous êtes prêt

  • grande expérience de développement, il suffit de corriger le code et d’actualiser l’actualisation, de lire les modifications des autocompilations à la volée lors de l’exécution en mode développement

  • rapide et léger

  • fullstack, vous n’avez pas besoin d’intégrer des frameworks encombrants pour le faire fonctionner

  • un grand rapport d’erreurs, plus de trace de stack d’erreur sans fin, vous montre juste la ligne avec erreur

  • pas de configuration xml partout

  • excellent support pour tdd avec test intégré au selenium

Je pense que le principal avantage en tant qu’outil d’apprentissage est qu’il est possible de jeter un coup d’œil au code source sans se sentir perdu et au support de la communauté… La documentation est très claire et vous pouvez apprendre beaucoup en regardant la source. code…

Depuis que ces solutions plus anciennes ont été corrigées, Google a apparemment fourni un plug-in Eclipse pour créer un projet de démarrage qui produira une application App Engine, un APK Android et une application Web, tous parlant entre eux sur une interface définie par un seul ensemble. des déclarations d’object annotées.

Je ne l’ai pas encore essayé moi-même, mais jetez un coup d’œil avant d’essayer l’un des exemples les plus hétérogènes décrits dans les messages précédents ci-dessus:

https://developers.google.com/eclipse/docs/appengine_connected_android

Cette vidéo de Google est également très informative:

http://www.youtube.com/watch?v=NU_wNR_UUn4

Pour ce que cela vaut, il y a eu pas mal de discussions sur les listes d’utilisateurs de Jersey, comment faire fonctionner Jersey sur GAE. C’est un travail un peu fastidieux en raison des ressortingctions imposées par le GAE (classes manquantes dans les listes blanches – elles devraient être résolues au fil du temps), mais elles peuvent apparemment fonctionner. Donc, bien que ce ne soit pas sortingvialement facile, cela pourrait être votre meilleur pari; esp. puisque de nombreux problèmes rencontrés sont les mêmes pour tous les frameworks (imposés par GAE).

J’ai récemment mis au point un modèle de projet avec Jersey, Guice et AppEngine chez GitHub. Il a été développé avec SimpleDS, mais il peut être modifié pour fonctionner facilement avec Objectify / JDO. Le projet est en direct ici .

Ce devrait être un bon sharepoint départ pour de nouveaux projets.

Voici un très bon tutoriel Restlet / Android / GAE / Objectify avec un exemple d’application simple. Désolé, c’est en français, mais vous pouvez juste copier / coller le code, ou utiliser google traduction.

Je l’ai suivi et j’ai eu un serveur Android / GAE fonctionnel communiquant en 2 heures. C’est une bonne base pour démarrer ou tester Restlet.

http://www.tutos-android.com/webservice-rest-android-appengine-restlet-objectivey

Bonne chance

Les deux actions les plus lourdes de l’API REST de GAE pour faire fonctionner, qu’elles soient Java ou .py, sont les graphiques et la façon de détacher les informations privées. Mon petit repos de gae a alimenté un autre projet. Je suis sûr que Java réussit là où python bloqué à cause de Java prend et donne plus de moyens (avantages) ainsi que plus de temps (plus lent) pour réussir (désavantage) alors que les projets python ouvrent moins de moyens pour réussir (moins) développement rapide avantageux) pour réussir le même.