0

介绍

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

问题

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

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

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

感谢您的意见

4

1 回答 1

0

问1

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

关于选项 b - 您当然可以从您的网络应用程序内部使用网络 API 服务。

问2

我不明白你在问什么。


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

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

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

于 2013-10-22T20:21:52.810 回答