2

我已经使用 GWT RPC 机制为客户端-服务器通信开发了一个 GWT + GAE 应用程序。现在,我想集成 Android 应用程序中提供的一些服务。但我发现不再推荐此实现,并且已从 GPE 3.0(google eclipse 插件)中删除,因此现在使用云端点(RPC tooling not available for appengine connected android project for GPE 3.2?)。

我想知道为什么采用这种方法(另一种突然被删除),因为在使用 Cloud Endpoints 而不是 GWT 的 RPC 时,实现客户端-服务器通信接缝所需的代码要复杂得多(至少对我而言),其中添加新类非常容易,代码接缝非常容易扩展。

为什么 Cloud Endpoint 优于 GWT RPC?这两种方法的优缺点是什么?

4

2 回答 2

4

与 GWT/RPC 相比,云端点(和其他基于 REST/JSON 的解决方案)的优势在于它们与语言无关。在云端点的情况下,Google 工具直接支持 Android、Web 和 iOS,但由于它们生成接口描述,它们也可以支持任何可以使用该描述的技术。

Endpoints 还使 OAUTH 身份验证相对容易,但我无法评论与 GWT 相比如何。

于 2013-10-29T14:14:07.010 回答
1

我个人的看法:它们都很糟糕,因为它们是专有的且不透明的。谷歌是一家伟大的工程公司,但这两个在 IMO 都是一个错误。我猜他们想将开发人员与他们的专有 API 联系起来——这就是 1990 年代的 MS。

我使用 REST+JSON。我个人最喜欢的是RESTEasy + Jackson,它们在 GAE 上完美运行。

优点:

  1. 灵活的序列化:Jackson 可以在类和 JSON 之间进行高级映射(多对一、嵌入式、getter/setter 等),您还可以编写自定义序列化程序。
  2. 完全控制堆栈:您可以拥有多个具有不同配置的端点(例如公共/私有),您还可以拦截和增加请求,自定义异常处理(抛出自定义异常 -> RESTEasy 创建自定义 JSON 作为响应)
  3. 拦截器允许使用标准或自定义身份验证方案
  4. 完全开源并使用标准协议和序列化格式:易于检查浏览器中发生的事情
  5. 便携:适用于所有基于 servlet 的服务器和客户端(浏览器、Android、iPhone 等)

诚然,学习曲线要​​高一些,但至少你会有所控制。

于 2013-10-29T13:12:03.227 回答