用 sqlRest 將數據庫轉換爲 REST 風格的 Web 服務

本文介紹 sqlRest 框架,它是一種高效的輕量級數據庫 REST 服務解決方案,您可以通過簡單的配置直接將數據庫中的數據暴露成 REST 風格的 Web 服務,並將數據庫的 CRUD 操作和 REST 服務的 GET, DELETE, POST, PUT 接口對應起來。

隨着 Web 2.0 的 發展,REST(Representational State Transfer)風格的 Web Service 得到普遍的應用,各種 REST 框架如雨後春筍般發展起來。當我們從事 Web 2.0 的實踐時,越來越感覺到服務器端的 REST 服務在應對 MIS 一樣的信息系統以及和數據庫的交互時還存在很大的問題,比如效率低下,重複編碼等。

例如,我們假定如下的場景:需要使用 Web 2.0 的技術來實現一個信息管理系統,這個系統的主要的任務就是對後臺數據庫的業務數據的操作,管理和報表。這樣的場景在如財務等這樣的業務系統中非常常見。我們可以使用實體 Bean 實現 EJB,再將該 EJB 包裝成爲 REST 服務,或者使用輕量級的 Hibernate,配合各種 Java 的 REST 框架來實現,但是無論如何都不可避免需要做很多的重複編碼,或者要實現大量的數據庫操作。既然 REST 將服務看成是資源的服務,那麼我們可以認爲數據庫中的數據也是一種資源。有沒有方法直接將它們轉化爲 REST 服務呢?sqlRest 正是這樣一種框架,它是一種高效的輕量級數據庫 REST 服務解決方案,可以通過簡單配置直接將數據庫中的數據暴露成 REST 風格的 Web 服務,並將數據庫的 CRUD 操作和 REST 服務的 GET, DELETE, POST, PUT 接口對應起來。

本文將介紹這一框架的配置和運行,並討論如何測試 REST 服務,最後給出了配置 DB2 實現 DB2 中的資源 REST 化的參考辦法,相信會對 Web 2.0 和 REST 服務的開發者帶來一定的參考價值。本文的示例基於 Eclipse 3.2 和 JDK1.5,Servlet 容器使用的是 Tomcat 5.5 。

sqlRest 第一步

下載和運行

sqlRest 是 sourceforge 站點上的一個開源項目,它使用一個 Servlet 實現了基於數據庫的 REST 引擎,可以自動的將數據庫的表映射成 REST 資源,用戶可以使用 URL 獲取表的內容 (XML 格式),並進行相關操作。

我們首先下載一個二進制的包來運行 sqlRest 示例。您可以通過 http://sourceforge.net/projects/sqlrest/ 訪問該項目。在首頁上點擊下載,進入下載頁面下載 sqlrest-0.3.2 版本,這也是目前唯一可用的版本。

下載後解壓縮,請先確認安裝了 JRE 1.4.1 和 TOMCAT 4.1 以上版本。將解壓縮目錄內 webapps 目錄下的 sqlrest 目錄拷貝到 TOMCAT 的 webapps 目錄中。啓動 TOMCAT,在您的瀏覽器內鍵入 http://localhost:8080/sqlrest, (如果您的 TOMCAT 的端口是 8080),您將看見如圖 1 的 sqlRest 的 Web 界面:


圖 1. sqlRest 初始 Web 界面
sqlRest初始Web界面

該頁面描述了數據庫中有 4 種可用的 REST 資源,這說明安裝成功,我們也就可以開始進一步的工作。

這裏讀者需要注意,根據 JRE 版本和類型的不同,可能在啓動的時候 TOMCAT 會出錯(參考如圖 2 的錯誤信息),sqlRest 的 Servlet 無法加載,造成錯誤的原因是我們下載的 sqlRest 是二進制版本,而編譯 sqlRest 的 JRE 和我們運行 Tomcat 的 JRE 之間存在不兼容。解決方法是獲取 sqlRest 的源碼,在運行環境中重新編譯,再將編譯的 class 文件拷貝到 Tomcat 中的 webapp/sqlrest/WEB-INF 目錄中的 classes 目錄下重新啓動就可以了。如果選擇從源碼項目開始編譯和部署運行,就可以避免這一錯誤(TOMCAT 和 Eclipse 使用的是同一 JRE),下面您將瞭解到如何從 CVS 獲取代碼並從源碼開始編譯部署 sqlRest 。


圖 2. 不同的 JDK 的兼容性問題引起的啓動錯誤
不同的JDK的兼容性問題引起的啓動錯誤

從源碼運行

sqlRest 在 SourceForge 上的源代碼可以通過匿名的 CVS 獲取。請先按圖 3 的配置方法在 Eclipse 中建立源碼倉庫。


圖 3. sqlRest 的源碼倉庫的 CVS 配置



本文轉自IBM Developerworks中國

      請點擊此處查看全文

 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章