AppEngine的RESTFul服务框架

时间:2012-02-26 13:43:35

标签: google-app-engine rest jax-rs restlet resteasy

我正在开发一个涉及使用Google AppEngine PAAS的移动和网络客户端的项目。我想在我的AppEngine应用程序中使用RESTFul webservices。

我已经查看了Stackoverflow对RESTFul服务框架的引用,这些框架可以与AppEngine一起用于Web(GWT)和移动(Android)客户端。虽然Restlet似乎为AppEngine,GWT和Android提供了版本,但到目前为止,我已将其归结为RestEasy,主要是由于此question

之前曾有过discuss RESTFul frameworks的问题,但我认为比较并不适用于此,现在非常普遍。听取经验丰富的开发人员对这套平台可用框架的看法以及每个平台的优点和缺点将会很有帮助。

4 个答案:

答案 0 :(得分:36)

您可能希望考虑使用 Google Cloud Endpoints ,它已被宣布为Google I / O上App Engine的受信任测试人员功能,现在可供所有人使用。使用Endpoints,您可以注释简单的Java(或Python)类和方法来描述您的API。例如,这是一个从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();
  }
}

功能

  • 支持Java和Python运行时
  • 基于Google的API基础架构 - 它适用于许多与Google自己的API相同的工具和库,例如APIs ExplorerAPIs Console
  • 适用于Android和iOS的自动生成的静态类型客户端库 - 这些库使用您用来访问的相同Google创作的JavaObjective-C库其他Google提供的API,例如Calendar API
  • 动态类型的JS客户端库 - 再次,用于访问JS中其他Google提供的API的相同库
  • 内置对OAuth 2的支持
  • 与适用于Eclipse的Google插件集成 - 这允许您根据模型自动创建API,或者使用App Engine应用程序来支持现有的Android应用
  • 支持本地开发 - 您可以使用App Engine开发环境构建和测试API,就像使用其他App Engine功能一样

了解详情

有关使用端点的详细信息,请查看documentation

您还可以观看Google I / O的几个演讲:

答案 1 :(得分:2)

我一直在GAE上使用春天的休息服务,并且使用Android Native,Phonegap和IOS客户端消费它,没有任何问题。

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

答案 2 :(得分:2)

我尊重你决定不使用Restlet,但对于这个帖子的其他浏览器,我已经能够使用Android / Restlet / GAE进行Post工作 - 而且我的知识和编程技巧相当有限。我有一些问题让Restlet版本的Javascript正常工作(它仍处于早期开发阶段),但Restlet for Android没有提出任何问题,我记得。

答案 3 :(得分:0)

如果您正在考虑GAE,您可以考虑的一个选择是duyproject。它知道它的openid库,但它也有一个非常轻量级的REST servlet库。并且使用GAE,您希望保持所有库都亮,这样您就不会超过字节限制。