AppEngine的RESTFul服务框架

Saa*_*ooq 27 rest google-app-engine jax-rs restlet resteasy

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

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

以前有过讨论RESTFul框架的问题,但我不认为比较适用于这个,现在很常见的情况.听取有经验的开发人员对可用于这组平台的框架的看法以及每个平台的优点和缺点将是有帮助的.

Dan*_*oet 37

您可能希望考虑使用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();
  }
}
Run Code Online (Sandbox Code Playgroud)

特征

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

学到更多

有关使用端点的更多详细信息,请查看文档.

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