我正在寻找一些关于在移动设备之间传输数据的最佳实践概念(目前是 Android,但概念也适用于其他设备)。我目前有一个 WCF 服务设置了一个有效的 JSON 端点。我开始使用适当的 WebGet/Invokes 等修改现有的服务方法,使其成为 RESTful。该服务实现了请求/响应模式,因此客户端与服务之间的所有通信都包含在一个复杂的 MessageRequest 和 MessageResponse 对象中。
让移动应用程序成功利用此模式的最佳方式是什么?我只能想出两种解决方案,各有优缺点:
- 在客户端项目中创建所有数据传输对象,然后创建一个 JSON/DTO 映射器(GSON 在这里可能工作得很好)。使用客户端对象处理所有客户端数据管理,直到需要服务器请求,转为 DTO 到 JSON,并将请求发送到服务器。这里的好处让我印象深刻,因为它与服务域并行,它使客户端数据管理更容易。缺点是,随着对象变得越复杂,它们就有可能崩溃。
- 忽略 DTO 客户端,直接从 JSON 执行所有操作。这里的好处是它消除了与较大对象和所需映射相关的开销。这里的缺点是,这让我觉得非常脆弱 - 对返回对象的任何更改都需要在代码深处处理,而不是仅仅对客户端 DTO 和映射器进行更改。
有没有更好的方法来完成这种数据交换?或者这些是处理它的唯一真正方法吗?您如何管理移动应用程序中的数据传输?
最佳答案
我有一个与您非常相似的 WCF 设置,我最终创建了非常轻量级的数据对象客户端。它们管理着分离一个代表它们自己的 JSONObject
并创建它们需要的任何子对象,但除此之外是主要用于将数据分组在一起并且不包含业务逻辑的简单类。我们还不需要做任何客户端缓存,但这些对象将是放入 SQLite 代码以将其自身持久化的好地方。
到目前为止它运行良好,我们甚至能够通过包含 org.json
将客户端 Android 代码移植到另一个运行常规 Java 的项目。
关于android - 移动应用程序和 Web 服务数据传输(WCF 和 JSON),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6781534/