2011-08-22 27 views
10

我们一直在使用Web应用程序框架构建需要能够查询SQL Server数据库并以XML格式获得结果的应用程序。如何通过REST查询SQL Server以获取XML

过去,框架提供了这种能力。但是这个功能现在已经被弃用了。

所以我们在想,该框架允许我们轻松地通过HTTP查询REST服务,那么为什么不使用SQL Server HTTP端点。但是,从SQL Server 2008开始,我们读取的是HTTP端点已被弃用。不是用于设计未来架构的平台。

Azure(以前称为SQL Data Services)将提供类似的服务,但现在只支持TDS协议,而不支持http。所以在Azure中没有REST。

建议的替代方案是使用WCF数据服务(以前称为ADO.NET数据服务)开发自定义应用程序。但是这意味着需要开发,部署和维护一个额外的应用程序,大概是将其自身的身份验证设置与SQL Server分开,并且拥有自己的源代码库......使用我们没有经验的技术,因此拥有自己的漂亮深刻的学习曲线。

你可以建议任何其他方式通过REST/HTTP查询SQL Server数据库,这是不被弃用,并会返回结果为XML?

感谢您的任何帮助。

回答

5

请看这里:Creating an OData API for StackOverflow including XML and JSON in 30 minutes。基本上,前进的道路是REST由app层提供(WCF支持提供OData映射的EF)。恕我直言,对引擎的直接HTTP访问是一个非常糟糕的主意,但没有人喜欢SQL Server 2005的HTTPEndpoints,它们被误导了。我们不能将HTTP错误模型,安全性,类型系统映射到SQL中,并期望顺利的互操作性。让HTTP层存在于专用应用程序中,将处理HTTP生态系统的责任推送到专门针对该组件(WCF)的组件中,并将REST模型映射到专门用于该作业(EF)的组件中的DB模型。

+0

好的,谢谢,如果我们决定走WCF/ADO.NET路线,本教程将使它更容易。然而,正如问题所述,我们不愿意这样做,因为它需要在我们的开发过程中添加一个全新的工具链(VS及其组件/扩展),以及相关的一组工件来跟踪,部署和管理。更糟糕的是,由于对这项技术不熟悉,我们甚至不知道这些文物会是什么以及需要跟踪哪些文物。 – LarsH

+0

好的,你已经给出了一个很好的理由,说明HTTP端点为什么会消失。至于“没有人喜欢”,我会不同意,但也许这些人是不明智的。无论如何,这听起来好像没有更好的选择。 – LarsH

3

听起来你可能会被绑定到MS堆栈,但如果你没有,你可以在MySQL或PostgreSQL之上的Java EE容器(Tomcat,WebLogic等)中使用restSQL。 restSQL具有完整的使用JSON或XML编码的HTTP API。它提供了两个曲折:可更新的复合视图和分层复合视图。该框架可扩展到其他数据库,并且SQL Server的其他支持也在其支持的演变中。检出http://restsql.org

+0

谢谢......下次我们看这个问题时,我们一定会牢记这一点。确实,我们暂时坚持MS SQL Server。 – LarsH

+0

我需要这个,但..与MS SQL Server支持:/ –