是否使用Web API作为网站有效的数据提供者?

问题描述 投票:3回答:4

我正在考虑使用Web API建立项目。首先,首先构建API,然后使用此API对网站进行编程。

尽管听起来很有希望,但我想知道:如果我以一种很好的方式分离逻辑,那么我最终可能会通过多个API调用来检索网页上的数据,而API调用又是与服务器的多个连接,而所有开销等。

例如,如果我使用一个页面上的8个不同的API调用,我无法想象它不会对网页的性能产生影响。

所以,我误解了吗?还是这种开销可以忽略不计?或者是否需要多次调用表明设计错误?

提前感谢。

asp.net-mvc performance asp.net-web-api connection asp.net-webpages
4个回答
1
投票

一方面是您可以非常快速地向最终用户显示页面。页面加载后,请使用Jquery异步调用和任何Javscript模板工具(例如angularjs或mustacheJs)同时调用Web api以构建客户端页面视图。

我已经在多个项目中使用了这种方法,用户的经验非常丰富。


2
投票

嗯,我们做到了。提供对所有数据的REST访问的Web API服务器。独立的UI Clients将其用作基础持久性的唯一访问点。

第一个请求需要一些时间。它明显更长。它必须初始化所有UI Client内容,并从服务器获取最少的数据。 (菜单,用户,访问权限,元数据...列表视图数据)

要点,真正的优势,隐藏在第二个,第三个 ...请求中。 UI客户端上已经有很多东西。而且,即使再次请求这样做,也可以引入缓存(服务器,客户端,两者)。

因此,这意味着更多的请求(至少在UI Client启动期间)...但这并不意味着...应用程序速度变慢。

[关注分离]中的(可能不是隐藏的,应该很明显)] >>。在服务器上,我们不再解决问题,将用户数据处理,基本控制器或子控制器放置在哪里……应该通过母版页,布局控制器...已解决。我们正在关注通过REST发布的单个特定内容。一种方法,一种业务运营。如果我们想保持该应用程序的生命力,并成为维修人员和扩展人员,那就是梦想。

[大多数现代浏览器都支持6-8个并行连接到同一站点。因此,您必须对此小心。除非您要连接到那么多单独的系统,否则我将尝试减少连接数。或者确保通过不同的事件异步调用这些调用,以减少并行连接的机会。

1
投票

1
投票
仅仅因为可以,所以使用Web API毫无意义。您应该有合理的理由来构建RESTful API。即使这样,如果主要供您自己使用,也可以设计它在一个调用中为每个页面提供一个ViewModel。
© www.soinside.com 2019 - 2024. All rights reserved.