ASP.NET WEBAPI内部/外部使用

时间:2013-10-22 15:48:27

标签: wcf asp.net-web-api

简介

  • 我们正在为当前的Web应用程序开发新的Web客户端。
  • 我们将抓住机会建立一个REST WebApi来访问我们的资产(由第三方以及我们的新网络客户端使用)
  • 我们正在考虑WebAPI的OAuth,服务报价,应用程序权限等
  • 我们想“吃自己的狗食”,所以新的webclient必须使用webapi ......
  • 重要提示:webApi和webClient将托管在同一服务器中

问题

一个简单的用例是“获取菜单页链接”

  1. 对于Web客户端,您会选择哪两种方法?

    • a)在其中生成一个带有Js webApiCall的html,从客户端Web浏览器调用以获取用户可用的菜单链接。 =(2次往返:1次为html / aspx + 1为api电话 MenuGetAvailableItems
    • b)生成一个html,其中已填充数据菜单链接(webApi MenuGetAvailableItems 在服务器端内部消耗)=(1次往返html / aspx + API内部调用..)
  2. 如果您选择选项1B,是否可以通过从同一服务器使用api并保留安全性,报价等来避免http开销?我的意思是,我们可以使用一些WCF机制或其他来传达这两个网站,而不是对localhost进行http调用......?

  3. 感谢您的评论

1 个答案:

答案 0 :(得分:0)

问题1

关于选项a - 我会避免从网页上调用Web API,你将开始遇到CORS的问题。此外,如果您想使用身份验证来访问Web API服务,您将如何从网页发送用户名和密码呢?

关于选项b - 你当然可以从你的网络应用程序中使用web api服务。

问题2

我不明白你在问什么。


如果构建Web服务的主要目的是允许第三方与您进行交互,那么您将需要构建仅需要公开的服务。

一般而言,“吃自己的狗食”可能不是使用Web API的最佳理由,因为对数据库的标准调用会更合适。当您真正需要的只是Web应用程序中的数据层时,您将运行两个应用程序。

听起来你最终会得到一个庞大的Web API应用程序,每次你想要为你的网站添加内容时都需要新的服务。