3

我正在构建一个网站,并使用 WebAPI 为它创建了一个 API。API 使用 OAuth v1 使用 DotNetOpenAuth 进行保护,并且在 iPhone 应用程序调用 API 时一切正常。我想回过头来让网络的相关部分也使用 API,以便所有东西都通过 API。

我有点困惑的部分是,如果我让我的网站登录通过 API,将网站设置为 OAuth 消费者,为当前用户获取 OAuth 令牌,那么我是否应该在网站代码中创建一个 http在同一个框中调用 WebAPI 以调用传递我的 OAuth 令牌的 API?(在 HTTP Auth 标头中)

让网站调用 API 似乎是一种非常低效的方法,因为所有调用都需要服务器端进行 HTTP 调用,对我来说听起来不是特别可扩展吗?尽管我想使用 OAuth 来保护 API,但我不确定其他选择。

4

1 回答 1

2

这是一个很好的问题并且不断出现(因为您清楚地意识到拥有另一个网络绑定跃点的开销):

我需要在我的 ASP.NET MVC 中使用我自己的 API 还是绕过 API 直接进入业务逻辑?

我试图在一篇博客文章中解释这一点(接近文章结尾)。但是,简而言之:这取决于. 如果您的 API 和 MVC 站点是同一个应用程序的一部分,那么它们会彼此相邻,因为它们都是表示层- 正如我在帖子中所解释的那样。但是,如果您的 API 是 SOA 服务的表示层并被包括您的 MVC 站点在内的多个客户端使用,那么是的,它必须是独立的。

在您的情况下,我倾向于将 MVC与您的 Web API并排放置- 访问相同的业务层。而且我相信这也解决了您遇到的 OAuth 问题。

于 2013-10-15T13:19:47.510 回答