【问题标题】:How to create a RESTful web service in asp.net?如何在 asp.net 中创建 RESTful Web 服务?
【发布时间】:2011-02-12 11:33:33
【问题描述】:

我只是想创建一个相当基本的 REST 服务,这样我就可以将我的 asp.net/SQL 服务器应用程序中的一些数据暴露给外部工作,就像这样.....

http://domain.com/api/offices - 将返回一组 xml 办公地点。 http://domain.com/api/offices/15 - 将返回办公室 15 的所有详细信息。

这都是相当标准的东西(包括基本身份验证),但似乎有几种方法可以使用 Microsoft 技术实现这一点,我真的不知道从哪里开始。这些似乎是选项...

1) WCF

2) ASP.NET MVC

3) ADO.NET 数据服务

4) Rest Starter Kit 项目模板?

以下哪一个是创建 Web 服务的最简单和最“最新”的解决方案?

【问题讨论】:

  • 使用 WCF 设置 REST 和 JSON 可能会令人沮丧。

标签: asp.net wcf rest wcf-data-services wcf-rest


【解决方案1】:

ADO.NET 数据服务现在是 WCF 数据服务,这就是我所推荐的。它很容易使用(至少对于您描述的服务类型)。您可能还想看看Open Data Protocol——您可能不需要它,除非您支持非.NET 客户端(PHP、Java)。

【讨论】:

  • 我实际上想将数据公开给 Java Android 应用程序,但是我不能使用 Java 访问 RESTful 服务,即使它是使用 asp.net 创建的? ODP 有什么优势?
  • 根据这个页面,WCF 数据服务无论如何都会产生 OData 服务 - msdn.microsoft.com/en-us/data/bb931106.aspx - 这一切都非常令人困惑。
  • 您可以从 MS for Java 获取客户端 ODP 库。如果您使用实体框架类或其他涉及的东西,这将很方便,但如果您所做的只是抓住一个简单的名称:值对层次结构,我怀疑这是否值得。
【解决方案2】:

有一些替代方案,不确定您是否听说过,但不妨研究一下:

  • Open Rasta 它是一个相当自以为是的 Rest 框架,可让您创建 Web 服务和网站,但首先了解它有点奇怪;它的重量如此之轻,值得一试,它需要了解 Rest 的实际工作原理(而不是你可能习惯的 .net 抽象),我认为它对 asp.net 没有很强的依赖性,对我来说一个明显的优势是您可以编码为 HTML、JSON 或您可能需要的任何格式,这很有趣

  • 另一个选项(我没有使用过)是Siesta,它在 Asp.net mvc 之上工作

Wcf 配置很快就会变得非常痛苦......

希望对你有帮助

【讨论】:

    【解决方案3】:

    如果您不打算在未来添加任何其他端点(如 SOAP 等)并且服务不会被 Silverlight 客户端使用,我建议您使用 ASP.NET MVC。

    如果涉及 Silverlight,则使用 ADO.NET 数据服务。

    如果您计划构建具有多种端点类型的强大服务框架,请使用 WCF。

    【讨论】:

    • ASP.NET MVC 次之。我们的团队在上一个 Web 项目中使用了它,并且对它非常满意。
    • 如果必须的话,我准备从头开始学习 MVC,但使用 WCF REST 入门工具包之类的东西不是更容易吗?
    • @jonhobbs 最后我检查了一下,WCF REST 入门工具包并不完美。它产生的服务肯定存在一些问题。我认识几个成功使用 .NET MVC 构建 RESTful 服务的人。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-01
    • 2012-08-27
    • 1970-01-01
    相关资源
    最近更新 更多