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

时间:2017-03-16 03:20:42

标签: rest typescript client-server restful-architecture

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

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

我的问题是:

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

  2. 响应JSON对象有多大/多复杂成为问题? (表现,最佳做法......)

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

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

1 个答案:

答案 0 :(得分:0)

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

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

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

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

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