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

问题描述 投票:1回答:1

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

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

我的问题是:

  1. 我们是否需要在客户端为所有json响应对象创建一个类,并在将它绑定到HTML视图或处理数据之前对它们进行反序列化?
  2. 响应JSON对象有多大/多复杂成为问题? (表现,最佳做法......)
  3. 我仍然对如何在客户端和服务器之间共享工作负载感到困惑。什么决定“我们应该在服务器端处理它”或“我们应该让客户端这样做”?很多情况我可以让服务器端在返回客户端之前获取大量数据,或者我应该让客户端发出多个请求并在其旁边获取它?我的应用程序可能是~1000个用户的内联网应用程序(大约5-10个用户)。

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

rest typescript client-server restful-architecture
1个回答
0
投票

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

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

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

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

在这两种情况下,业务逻辑都应该在某个地方实现。我投票支持简单的客户端并隐藏服务器端的复杂性。最后,一台服务器可能是几个客户端。这就是复杂服务器比复杂客户端更有益的原因。

© www.soinside.com 2019 - 2024. All rights reserved.