我正在建立一个网站,并已为它创建了一个使用WebAPI的应用程序接口。该应用程序接口是通过使用DotNetOpenAuth的OAuth v1来保护的,并且通过调用该应用程序接口的iPhone应用程序,一切都工作得很好。我想回过头来,让web的相关部分也使用API,这样每件事都会通过API。
但我有点困惑的是,如果我让我的网站登录通过应用程序接口,将网站设置为OAuth消费者,获取当前用户的OAuth令牌,那么我是否应该在网站代码中对同一机器上的WebAPI进行http调用,以调用传递OAuth令牌的API?(在HTTP Auth标头中)
让网站调用API似乎是一种非常低效的方式,因为所有调用都需要服务器端也进行HTTP调用,对我来说,这听起来不是特别可伸缩吗?尽管我想使用OAuth来保护应用程序接口,但我不确定有没有其他的选择。
发布于 2013-10-15 21:19:48
这是一个很好的问题,并且不断出现(因为您清楚地意识到拥有另一个网络绑定的跳跃的开销):
我是否需要在我的ASP.NET MVC中使用自己的API,或者绕过API直接进入业务逻辑?
我已经尝试在blog post中解释了这一点(在这篇文章的结尾)。然而,简而言之:it取决于。如果你的应用程序接口和MVC站点是同一个应用程序的一部分,那么它们是相邻的,因为它们都是表示层-正如我在这篇文章中解释的那样。但是,如果您的API是SOA服务的表示层,并且由包括您的MVC站点在内的多个客户端使用,那么是的,它必须是独立的。
在您的情况下,我倾向于将MVC放在Web API的旁边-访问相同的业务层。我相信这也解决了你的OAuth问题。
https://stackoverflow.com/questions/19375638
复制相似问题