【问题标题】:Can I use both REST and SOAP in an Android application?我可以在 Android 应用程序中同时使用 REST 和 SOAP 吗?
【发布时间】:2013-05-13 11:35:34
【问题描述】:

我正在尝试构建一个 Android 应用程序。

它有一个基于 SOAP 的 Web 服务,它需要从中使用数据。
我也有一个中间件 Worklight 服务器实现。

来自 Web 服务的数据非常庞大,实际上并非所有数据都一直需要。我计划使用中间件 Worklight 服务器来使用 SOAP Web 服务,而不是 Android 应用程序本身,解析数据,然后将所需的位公开为 RESTful 服务和数据格式 JSON 而不是 SOAP XML 格式。

我认为这将减轻从应用程序中解析大量 XML 数据的负担。这是一个好方法吗?

【问题讨论】:

  • XML 在某些情况下不会完全映射到 JSON(例如,属性文本节点)。但是有几个工具已经接受了将 XML 转换为 JSON 的挑战,并试图使这个过程变得平滑(Jettison、XStream、json-lib)。只要您了解该过程,然后确定,您的设计应该可以工作。只需了解中间处理步骤会减慢数据的检索时间(因此您基本上是在打赌,您的中间层执行 ETL 的速度比您的终端应用程序解析巨大的 XML 有效负载的速度要快)。

标签: android json rest soap ibm-mobilefirst


【解决方案1】:

我认为您的整体设计没有问题,即从中间件服务器中的 SOAP 调用中消耗大量数据,然后只公开您的 Android 客户端所需的特定内容。

它至少会为您节省 Android 设备上的带宽(这是一件非常好的事情),并且很可能会在您的 Android 项目中节省几行代码,因为您的 REST 数据将针对您的特定用例进行定制。

JSON 还是 XML?什么更适合您的需求。

不过,我建议您考虑对 REST 服务进行版本控制。这是一个好的开始:Best practices for API versioning?

【讨论】:

  • 谢谢 Mike,我打算在中间件服务器中解析 XML 数据并使用 JSON 与我的 Android 应用程序通信,因为它是轻量级的,并且用少量代码更容易阅读,我使用示例应用程序进行了尝试,与使用 XML 消息相比,我可以看到应用程序性能的显着改进。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-06-21
  • 1970-01-01
  • 2017-02-03
  • 1970-01-01
  • 2018-06-23
  • 1970-01-01
  • 2018-06-04
相关资源
最近更新 更多