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

从客户端和服务器RESTAPI映射模型,rest,typescript,client-server,restful-architecture,Rest,Typescript,Client Server,Restful Architecture,我在一个项目中通过RESTAPI使用客户机-服务器通信,Angular 2调用RESTfulWeb服务,具体来说。 在客户端,它是用Typescript(javascript的子集)编写的 我的问题是服务器端的对象是嵌套的、复杂的,当它接收到响应(JSON对象)时,很难准确地在客户端建模/反序列化 我的问题是: 我们是否需要在客户端为所有json创建一个类 响应对象,并在将其绑定到HTML之前对其进行反序列化 查看或处理数据 响应JSON对象会成为多大/多复杂的问题? (性能、最佳实践…) 对于

我在一个项目中通过RESTAPI使用客户机-服务器通信,Angular 2调用RESTfulWeb服务,具体来说。 在客户端,它是用Typescript(javascript的子集)编写的

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

我的问题是:

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

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

  • 对于如何在客户端和服务器之间共享工作负载,我仍然感到困惑。是什么决定了“我们应该在服务器端处理”还是“我们应该让客户端来处理”?在许多情况下,我可以让服务器端在返回到客户端之前获取大量数据,还是应该让客户端发出多个请求并在其端获取数据? 我的应用程序可能是一个内部网应用程序,可容纳约1000个用户(大约5-10个并发用户)


  • 我不熟悉使用rest的web应用程序,所以非常感谢你们能给我提供这方面的指导。

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

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

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

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


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

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

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

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

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

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