从客户端和服务器 Rest API 映射模型



我正在一个项目中通过 rest API 使用客户端-服务器通信,具体来说,Angular 2 调用 restful Web 服务。 在客户端,它是用Typescript编写的,Typescript是javascript的一个子集。

我的问题是我们在服务器端的对象是嵌套的,复杂且难以在客户端收到响应时准确建模/反序列化(JSON 对象)

我的问题是:

  1. 我们是否需要在客户端为所有json创建一个类 响应对象并在将其绑定到 HTML 之前对其进行反序列化 查看或处理数据?

  2. 响应 JSON 对象会成为多大/多复杂的问题? (性能、最佳实践...

  3. 我仍然对如何在客户端和服务器之间共享工作负载感到困惑。是什么决定了"我们应该在服务器端处理它"或"我们应该让客户端这样做"?在许多情况下,我可以让服务器端在返回客户端之前获取大量数据,或者我应该让客户端发出多个请求并在其端获取数据? 我的应用程序可能是 ~ 1000 个用户(大约 5-10 个同时)的内部网应用程序。

我是使用 rest 的 Web 应用程序的新手,所以如果你们能指导我,我非常感谢你们。

让我回答子问题 #3。我为一个小项目开发微服务架构,并遇到了同样的问题。可以在服务器端或客户端实现逻辑。

一方面,服务器可以返回简单的纯对象,另一方面 - 可以返回包含所有必要的嵌套和处理数据的对象。

在第一种情况下,客户端应该对服务器进行更多查询,以便收集所有嵌套数据。客户端应该更加复杂,并预见在一系列请求期间服务器数据可能更改的所有情况(保持数据的一致性)。但它确实简化了服务器实现 - 它可能只是一系列 CRUD 存储库。它甚至可以是通过底层数据库自动生成的服务器。

在第二种情况下,服务器返回复杂的嵌套对象。它允许简化客户端,因为 JSON 反序列化对于现代框架非常简单。它减少了对服务器的查询次数。如果客户端可以在一个查询中拥有所有必要的数据 - 那就太好了。

在这两种情况下,业务逻辑都应该在某处实现。我投票支持简单的客户端,并在服务器端隐藏复杂性。最后,对于一台服务器,可以是多个客户端。这就是为什么复杂服务器比复杂客户端更有利。

最新更新