2011-08-22 49 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支持:/ –