Application RESTful sur Google App Engine Java?
je voudrais créer une application RESTful sur Google App Engine. Je voudrais XML et JSON services. J'ai brièvement expérimenté avec Restlet, Resteasy et Jersey. Je n'ai pas eu beaucoup de succès avec aucun d'eux, à part quelques exemples simples dans Restlet.
pourriez-vous partager vos expériences de création D'une application Web Restful sur Google App Engine en utilisant Java ou donner un aperçu des outils mentionnés ci-dessus sur GAE?
Merci!
Modifier (2009-07-25):
j'ai décidé d'utiliser Restlet pour le moment. Il semble fonctionner parfaitement jusqu'à présent. Veuillez publier toute autre information ou opinion que vous pourriez avoir. Quels problèmes avez-vous rencontrés? Avez-vous utilisé avec succès Jersey/Restlet/Resteasy sur GAE/J? Si c'est le cas, nous voulons en entendre parler!
10 réponses
Je suis heureux de vous annoncer que Restlet M3 fonctionne parfaitement sur AppEngine 1.2.2. J'ai suivi les "Premiers pas" et "ressources" tutoriels trouvés http://restlet.com/technical-resources/restlet-framework/guide .
ainsi, 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 commencer à explorer ceci aussi, mais je n'ai pas encore commencé. J'ai trouvé ce cadre, qui dit qu'il doit travailler, mais comme je l'ai dit n'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 tout le monde à jour car je suis sûr qu'il y a un intérêt à ce sujet.
J'utilise Restlet avec Guice sur Google AppEngine. À mon humble avis, ils s'adaptent très bien ensemble. Voir mon récent billet de blog pour plus de détails: http://haraldpehl.blogspot.com/2009/11/google-appengine-restlet.html
depuis que ces vaillantes anciennes solutions ont été patchées ensemble, Google a apparemment fourni un plugin Eclipse pour créer un projet de démarrage qui produit une application moteur D'application, un APK Android, et une application Web, tous parlant les uns aux autres sur une interface définie par un seul ensemble de déclarations d'objet annotées.
N'ont pas encore essayé cela moi-même, mais ont un regard 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 aussi très instructive:
pour ce que ça vaut, il y a eu pas mal de discussions sur Jersey user lists wrt comment faire travailler Jersey sur GAE. Il s'agit d'un travail un peu fastidieux en raison des restrictions GAE (classes manquantes des listes blanches -- espérons résolu au fil du temps), mais apparemment peut être fait pour fonctionner. Ainsi, alors que pas trivial, qui pourrait être votre meilleur pari; esp. puisque beaucoup des problèmes rencontrés sont les mêmes pour tous les cadres (imposé par GAE).
Eh bien, je vous conseille vivement de jeter un oeil à Play framework
regardez la vidéo sur la page d'accueil
il a un module gae
Avec sienne comme un orm pour gérer gae de la banque de données
de tous les cadres java que j'ai vu jusqu'à présent, je pense qu'il a la courbe d'apprentissage plus facile,
-
grand documentation ,
-
un tutoriel pour développer une application complète
-
très actifs et utiles de la communauté,
-
libre comme dans la bière et aussi comme dans le discours
-
très évolutif en raison de son statut d'apatride dessin
-
hautement personnalisable via des modules et des plugins approche
plus sur, compte tenu que c'est pour un cours d'université, il est vraiment facile de pirater le code, je pourrais gérer un couple de billets et de nouvelles fonctionnalités sans aucune expérience du tout avec java, juste un couple d'année de développement web applications avec php
autres prestations
-
il est vraiment facile de commencer, aucune configuration compliquée impliqué, il suffit de télécharger et décompresser le fichier et votre sont prêts
-
grande expérience dans le développement, juste corriger le code et cliquer sur "actualiser", jouer autocompiles des changements à la volée lors de l'exécution sur le mode de développement
-
rapide et léger
-
fullstack, vous n'avez pas à intégrer la lourdeur des cadres pour le faire fonctionner
-
de grandes erreurs de rapport, pas plus interminables erreur trace de la pile, vous montre à la ligne avec l'erreur
-
aucune configuration xml autour de
-
grand soutien pour le tdd avec le sélénium de test intégré
je pense que le principal avantage en tant qu'outil d'apprentissage, est qu'il est possible de jeter un coup d'oeil dans le code source sans se sentir perdu et le soutien de la communauté... La documentation est très claire, et vous pouvez apprendre beaucoup en regardant simplement le code source...
j'ai récemment assemblé un modèle de projet avec Jersey, Guice et AppEngine à GitHub. Il a été développé avec SimpleDS, mais il peut être modifié pour fonctionner avec Objectify / JDO facilement. Le projet est en direct ici .
cela devrait être un bon point de départ pour de nouveaux projets.
voici un très très bon tutoriel Restlet/Android/GAE/Objectiftify 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 qui fonctionnait communiquer ensemble en 2 heures. C'est une bonne base pour commencer ou tester Restlet.
http://www.tutos-android.com/webservice-rest-android-appengine-restlet-objectify
Bonne Chance
les 2 actions les plus encombrantes de L'API GAE REST pour faire fonctionner, que ce soit Java ou .py, sont des graphiques et la façon de undisplay informations privées. Mon petit gae reste alimentation en fourche l'autre du projet. Je suis sûr que Java réussit là où python est resté à cause de Java prend et donne plus de façons (avantages) ainsi que plus de temps (plus lent) pour réussir (désavantage) tandis que les projets python ouvre moins de façons de réussir (désavantageux) et moins de temps de développement (avantageux développement rapide) pour réussir le même.