我正在构建一个网站,并使用WebAPI为其创建了一个API。使用OANet v1使用DotNetOpenAuth保护API,所有这些都可以通过调用API的iPhone应用程序正常运行。我想回过头来让网络的相关部分也使用API,以便evrything始终通过API。
我有点困惑的部分是,如果我让我的网站登录通过API,将网站设置为OAuth使用者,获取当前用户的OAuth令牌,我是否应该在网站代码中在同一个框中对WebAPI进行http调用以调用传递我的OAuth令牌的API? (在HTTP Auth标头中)
这似乎是一种非常低效的方式让网站调用API,因为所有调用都需要服务器端进行HTTP调用,对我来说听起来不是特别可扩展?鉴于我想使用OAuth来保护API,我不确定替代方案。
答案 0 :(得分:2)
这是一个很好的问题并且不断出现(因为你清楚地意识到拥有另一个网络绑定跳的开销):
我试图在blog post(在帖子的末尾)解释这个问题。但是,简而言之:取决于。如果您的API和MVC网站是同一个应用程序的一部分,那么它们彼此相邻,因为它们都是表示层 - 正如我在帖子中解释的那样。但是,如果您的API是SOA服务的表示层并被包括您的MVC站点在内的多个客户端使用,那么它必须是独立的。
在您的情况下,我倾向于将MVC 并排您的Web API - 访问相同的业务层。我相信这也解决了您所遇到的OAuth问题。