Asp.net mvc 您如何决定在单页应用程序中向用户推送多少数据?

Asp.net mvc 您如何决定在单页应用程序中向用户推送多少数据?,asp.net-mvc,api,web-applications,asp.net-web-api,single-page-application,Asp.net Mvc,Api,Web Applications,Asp.net Web Api,Single Page Application,假设您有一个使用Web Api项目构建的配方管理器应用程序。您是否发送了JSON格式的食谱列表及其配料名称?或者你会发送食谱、配料名称和配料详细信息吗?确定SPA的初始有效载荷应该有多大的过程是什么 您确定发送多少数据的过程完全取决于您希望为用户提供的体验,不过就这么简单。如果根据我的经验,我需要随时显示所有配方,并进行简要说明,然后允许他们深入配方以获取更多信息,那么我只会发送足够的信息,以生成显示并进一步导航到实体 如果在导航到配方后,需要显示成分名称和测量值,然后向下发送该名称和足够的信息

假设您有一个使用Web Api项目构建的配方管理器应用程序。您是否发送了JSON格式的食谱列表及其配料名称?或者你会发送食谱、配料名称和配料详细信息吗?确定SPA的初始有效载荷应该有多大的过程是什么

您确定发送多少数据的过程完全取决于您希望为用户提供的体验,不过就这么简单。如果根据我的经验,我需要随时显示所有配方,并进行简要说明,然后允许他们深入配方以获取更多信息,那么我只会发送足够的信息,以生成显示并进一步导航到实体

如果在导航到配方后,需要显示成分名称和测量值,然后向下发送该名称和足够的信息,以便进一步导航到任何单一成分


正如您所看到的,它一直在继续。

这些是决定在初始页面中向客户端发送多少内容的因素:

  • 将为第一页显示的数据
  • 该页上任何下拉列表的查找列表数据
  • 和表示规则所需的数据(可能未显示,但已使用)
  • 在一个显示食谱列表的食谱页面上,我将获得可以显示在列表中的食谱和一些关键因素(如食谱名称、菜肴和其他关键信息)。足以让用户决定选择什么。然后,当用户潜入一个配方时,就去获取该配方的详细信息


    一般的规则是先得到用户几乎肯定需要的东西。然后根据他们的请求获取其他数据。

    这取决于您的应用程序是否只是支持web页面的简单HTTP API,或者您的目标是否更类似于平台即服务。采用SPA的一个驱动因素是,它使浏览器成为另一个客户端,就像iOS或Android应用程序或第三方一样

    如果您想支持多个客户端,那么很可能需要围绕您试图公开的资源设计API,这样您就可以对该资源使用统一的GET/POST/PUT等接口。这意味着您更有可能不是以特定于客户端的风格编码,并且您的API将被广泛的客户端使用

    资源是您想要拥有自己的URN的任何东西

    我建议,在这种情况下,您可能需要一个配方书资源,该资源具有指向各个配方资源的链接,其中可能包含该配方所需的所有信息。只有当你对一种成分包含的内容有更深入的了解,并且它们有自己的资源时,成分才会成为一种独立的资源

    在Huddle,我们使用文档驱动的设计方法。也就是说,我们提前为API编写文档,以便了解API的可用性。您可以在WTF中测量API质量


    现在,就性能而言,这种逻辑划分可能不是最优的。在这里,您需要在API的可用性和性能之间进行一个经典的权衡(最终,架构都是关于平衡设计权衡)。通常,在知道性能是一个问题之前,不要偏袒性能,因为早期优化会导致可用性或可维护性方面的损失。

    另一种可能性是实现对WebAPI的OData查询支持


    这样,您的客户就可以执行自己的查询,只返回他们需要的数据。

    谢谢John。我现在正在pluralsight(你的水疗视频)上看你——这是一份令人难以置信的工作。这也让我感觉更加平静/recipes为您提供食谱列表(标题、简短描述图片)和指向say/recipes/super yummy meatballs上实际食谱的指针,其中包含成分、方法等。感谢您提供详细答案。问题-在这种情况下,PaaS仅仅是类固醇的API吗?专门为多个客户端(web/mobile/tablet/etc)消费而构建的web api?是的,PaaS可以被视为类固醇api,也就是说,您构建的只是针对多个(您可能不知道)客户端。