首页 文章

Android,GWT和App Engine: Cloud endpoints 与GWT RPC?

提问于
浏览
2

我使用GWT RPC机制为客户端 - 服务器通信定义了一个GWT GAE应用程序 . 现在,我想整合Android应用程序中提供的一些服务 . 但我发现不再推荐这种实现,并已从GPE 3.0(谷歌eclipse插件)中删除,因此现在使用 Cloud endpoints (RPC tooling not available for appengine connected android project for GPE 3.2?) .

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

为什么Cloud Endpoint比GWT RPC更好?这两种方法有哪些优缺点?

2 回答

  • 4

    与GWT / RPC相比, Cloud endpoints (以及其他基于REST / JSON的解决方案)的优势在于它们与语言无关 . 对于 Cloud endpoints ,Google工具直接支持Android,Web和iOS,但由于它们生成接口的描述,因此它们也可以支持任何可以使用该描述的技术 .

    endpoints 也使OAUTH身份验证相对容易,但我无法评论与GWT的比较 .

  • 1

    我的个人意见:他们都很糟糕,因为他们是专有的和不透明的 . 谷歌是一家伟大的工程公司,但这两个都是IMO的错误 . 我想他们希望将开发人员与他们的专有API联系在一起 - 这就是20世纪90年代的MS .

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

    好处:

    • 灵活的序列化:Jackson可以在类和JSON(多对一,嵌入式,getter / setter等)之间进行高级映射,您也可以编写自定义序列化器 .

    • 完全控制堆栈:您可以拥有多个具有不同配置的 endpoints (例如公共/私有),您还可以拦截和扩充请求,自定义异常处理(抛出自定义异常 - > RESTEasy创建自定义JSON作为响应)

    • 拦截器允许使用标准或自定义身份验证方案

    • 完全开源并使用标准协议和序列化格式:易于检查浏览器中发生的情况

    • Portable:适用于所有基于servlet的服务器和客户端(浏览器,Android,iPhone等) .

    当然,学习曲线有点高,但至少你会掌控 .

相关问题