google-app-engine - AppEngine 的 RESTFul 服务框架

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

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

我在 Stackoverflow 上查看了可与 AppEngine 一起用于 Web (GWT) 和移动 (Android) 客户端的 RESTFul 服务框架的引用资料。尽管 ReSTLet 似乎为 AppEngine、GWT 和 Android 提供了版本,但到目前为止我已经将它归结为 RestEasy 主要是因为这个 question .

以前有问题discuss RESTFul frameworks但我认为这些比较不适用于这种现在很常见的情况。听取经验丰富的开发人员对可用于这组平台的框架的看法以及每个平台的优缺点会很有帮助。

最佳答案

您可能希望考虑使用 Google Cloud Endpoints ,它在 Google I/O 大会上被宣布为 App Engine 的可信测试器功能,现在所有人都可以使用。使用端点,您可以注释简单的 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(例如日历 API)的库
  • 动态类型的 JS 客户端库 - 同样,您使用 JS 访问其他 Google 提供的 API 的库
  • 内置对 OAuth 2 的支持
  • 与 Eclipse 的 Google 插件集成 - 这允许您自动创建基于模型的 API,或 App Engine 应用程序以支持现有的 Android 应用程序
  • 支持本地开发 - 您可以使用 App Engine 开发环境构建和测试您的 API,就像使用其他 App Engine 功能一样

了解更多

查看 documentation有关使用端点的更多详细信息。

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

关于google-app-engine - AppEngine 的 RESTFul 服务框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9453561/

相关文章:

java - asm 3.1 和 org.eclipse.persistence.asm-2.3.2.jar (jersey-moxy 1.15) 的兼容性问题

java - 在 JPA 中修改查询结果

python - App Engine 的云存储客户端库默认重试逻辑是什么?

python - Google App Engine Flex 是否支持 Pipfile?

REST 身份验证 : put key in custom header or Authorization header?

java - 向 OSGi JAX-RS 资源添加方面

python - 了解 "runwithfriends"facebook-app 示例代码

java - 如何处理对外部 REST 服务的请求并将响应返回给 Google Assistant?

c++ - 卡萨布兰卡中的 HTTP 身份验证

Java REST 服务应答需要太多时间