web-dev-qa-db-fra.com

Cadre de service RESTFul pour AppEngine

Je travaille sur un projet impliquant des clients mobiles et Web avec AppEngine PAAS de Google. Je souhaite utiliser les services Web RESTFul avec mon application AppEngine.

J'ai parcouru Stackoverflow pour trouver des références aux infrastructures de service RESTFul pouvant être utilisées avec AppEngine pour les clients Web (GWT) et mobiles (Android). Bien que Restlet semble fournir des éditions pour AppEngine, GWT et Android, je l’ai jusqu’à présent ramené à RestEasy principalement à cause de cette question

Il y avait eu des questions précédemment/ discuter des cadres RESTFul mais je ne pense pas que les comparaisons s'appliquent bien à ce cas, maintenant assez courant. Il serait utile de connaître le point de vue des développeurs expérimentés sur les cadres disponibles pour cet ensemble de plates-formes et sur leurs avantages par rapport aux inconvénients de chacun.

26
Saad Farooq

Vous voudrez peut-être envisager d'utiliserPOINTS DE TERMINAISON GOOGLE CLOUD, qui a été annoncé comme une fonctionnalité de testeur de confiance pour App Engine sur Google I/O, et est désormais disponible pour tout le monde. Avec les points de terminaison, vous annotez de simples classes et méthodes Java (ou Python) pour décrire votre API. Par exemple, il s’agit d’une classe simple permettant d’obtenir et de récupérer une liste des meilleurs scores d’un jeu Tic Tac Toe:

@Api(name = "tictactoe")
public class ScoreEndpoint {
  @ApiMethod(name = "scores.get")
  public Score get(@Named("id") String id) {
    PersistenceManager pm = getPersistenceManager();
    Score score = pm.getObjectById(Score.class, id);
    pm.close();
    return score;
  }

  @ApiMethod(name = "scores.list")
  public List<Score> list() {
    PersistenceManager pm = getPersistenceManager();
    Query query = pm.newQuery(Score.class);
    return (List<Score>) pm.newQuery(query).execute();
  }
}

Caractéristiques

  • Prise en charge des environnements d'exécution Java et Python
  • Construit sur l'infrastructure API de Google - il fonctionne avec la plupart des mêmes outils et bibliothèques que ceux utilisés pour les API de Google, tels que APIs Explorer et APIs Console
  • Bibliothèques clientes générées automatiquement et statiquement pour Android et iOS - ces bibliothèques utilisent les mêmes bibliothèques Java et Objective-C créées par Google que vous utiliseriez pour accéder à d'autres API fournies par Google, telles que l'API de calendrier
  • Bibliothèque de client JS dynamiquement typée - à nouveau, la même bibliothèque que celle utilisée pour accéder à d'autres API fournies par Google dans JS
  • Prise en charge intégrée de OAuth 2
  • Intégration avec Google Plugin pour Eclipse - Ceci vous permet de créer automatiquement une API basée sur un modèle ou une application App Engine pour sauvegarder une application Android existante.
  • Prise en charge du développement local - vous pouvez créer et tester votre API à l'aide de l'environnement de développement App Engine, comme avec d'autres fonctionnalités d'App Engine.

Apprendre encore plus

Consultez la documentation pour plus de détails sur l’utilisation des points de terminaison.

Vous pouvez également regarder plusieurs conférences de Google I/O:

36
Dan Holevoet

Je respecte votre décision de ne pas utiliser Restlet, mais pour les autres navigateurs de ce fil, j’ai été capable de faire fonctionner Post avec Android/Restlet/GAE - et mes connaissances et mes compétences en programmation sont assez limitées. J'ai eu quelques problèmes à faire en sorte que l'édition Restlet pour Javascript fonctionne correctement (elle en est encore au début du développement), mais Restlet pour Android n'a posé aucun problème dont je puisse me souvenir.

2
Richard Berger

J'utilise des services reposants de printemps avec beaucoup de chance avec GAE et le consomme avec des clients Android Native, Phonegap et IOS sans aucun problème. 

http://blog.springsource.org/2009/03/08/rest-in-spring-3-mvc/

2
DavidB

Je voudrais aussi recommander Restlet, voir aussi les autres discussions ici

Restlet a une édition pour GAE, voir http://wiki.restlet.org/docs_2.0/13-restlet/275-restlet/252-restlet.html

Mais il existe également d'autres bibliothèques livrées avec des éditions spéciales pour GAE, par exemple: http://code.google.com/p/xydra/wiki/RestLess

1
ChrLipp

Si vous examinez GAE, vous pouvez envisager un choix: duprojet . Il est connu pour sa bibliothèque openid, mais il possède également une bibliothèque très légère pour les servlets REST. Et avec GAE, vous voulez garder toutes les bibliothèques claires afin de ne pas dépasser la limite d'octets.

0
Deanna