3

我理解并欣赏 ASP.Net MVC 4 Web API 为 Web 客户端带来的价值(与 Knockout、jQuery 结合使用时)。但是,我不确定这对于服务器端的内部 Web 服务是如何工作的。远离 Web API 不是一种选择。

我的要求是我从 jQuery 调用相同的服务,并且还调用我在 ASP.Net MVC 控制器(在 UI 上)中需要的一些调用,这些调用不应该被 JavaScript 客户端访问。

我偶然发现了 Dave 的这篇文章:http ://encosia.com/rest-vs-rpc-in-asp-net-web-api-who-cares-it-does-both/ 。我知道我需要的是 RPC 样式(我习惯于 WCF)并且 Web API 支持它。

这是一个 Azure 应用程序,因此我可以在本文中使用 ACS 对其进行保护。

我可以通过限制对我的服务器 (URL) 的调用来保护我需要的调用(可能是一个单独的 API 控制器)。

  1. 我假设我需要在前端控制器上使用 HttpClient 来使用信息。
  2. 我能否将我的结果序列化回前端控制器上的实体?
  3. 这种方法还有其他选择吗?
  4. 最重要的是,这是一种可行的方法吗?

提前致谢

4

1 回答 1

2

在您的情况下,我可以看到 ASP.NET Web API 位于表示层。由于 ASP.NET MVC 也在表示层,因此 MVC 调用 Web API 可能没有意义。

一个简单的方法(我一直提倡 KISS)是拥有一个可从 MVC 和 Web API 同等访问的业务层。所以不是 MVC 去 Web API 然后去 BL,它直接去。

但是,如果您正在设计一个封装上下文边界并且可以由客户端和 MVC 平等使用的 SOA Web API 外观,我建议您使用授权来控制谁可以访问什么。这可以是 OAuth 或任何其他方案。

于 2012-10-13T12:48:11.320 回答