我们正在使用 MVC 4.0 和 Web API 重写我们的系统,目前我们正处于决策 split 阶段。
对 Web API 进行多个小型调用而不是在 MVC 网页上显示数据的单个大型调用是否更有效/最佳实践:-
即
多次调用:
调用 1 - 返回有关用户的核心数据(用户模型)
调用 2 - 返回有关用户状态的数据(状态模型)
调用 3 - 返回用户历史记录(历史模型)
单次调用: 返回一个完整的 ViewModel,其中包含有关用户的所有核心数据、当前状态和历史项目列表
public string UserName { get;set;}
public Status UserStatus { get;set;}
public List<history> { get;set;}
任何建议将不胜感激(附加信息,每个调用都是一个单独的数据库调用)
最佳答案
虽然我不确定这是回答这个问题的最佳位置(我认为这可能更多地属于程序员领域),但我想说这实际上取决于您最常需要的数据。如果您的应用程序中的每个页面都需要整个对象,那么它真的会为您节省进行多个小调用的时间吗?如果其中一些数据可以缓存在客户端,那么也许大量的小调用会更有效,但否则,您就会增加客户端的数量(客户端必须检索、解析,然后输出三个流)数据)和服务器(必须路由调用、检索数据和返回数据)的工作没有什么好处。
其次,正如 @Damien_The_Unknowner 指出的那样,存在外部调用此 API 的问题。如果API是公共(public)的,或者被多个应用程序调用,那么问题是/大多数/应用程序需要什么最有效的包,而不仅仅是这个应用程序需要什么。如果/大多数/应用程序需要整个对象,那么调用它们来仅检索该对象的各个部分是没有意义的。如果他们只需要 Status,那么只检索 Status 的 API 方法是一个不错的调用。
关于asp.net-mvc - Web API 多次或单次调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20953658/