使用sqlRest将数据库转换为REST风格的Web服务

随着 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 界面

该页面描述了数据库中有 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 的兼容性问题引起的启动错误

时间: 2024-10-03 19:31:27

使用sqlRest将数据库转换为REST风格的Web服务的相关文章

RESTful风格的Web服务框架 Swagger

Swagger 是一个规范和完整的框架,用于生成.描述.调用和可视化 RESTful 风格的 Web 服务.总体目标是使客户端和文件系统作为服务器以同样的速度来更新.文件的方法,参数和模型紧密集成到服务器端的代码,允许API来始终保持同步.Swagger 让部署管理和使用功能强大的API从未如此简单.   创建工程   1.REST API import javax.ws.rs.Consumes;      import javax.ws.rs.GET;      import javax.ws

node.js连接mongoDB数据库 快速搭建自己的web服务_node.js

一.写在前面   人人都想成为全栈码农,作为一个web前端开发人员,通往全栈的简洁之路,貌似就是node.js了.前段时间学习了node.js,来谈谈新手如何快速的搭建自己的web服务,开启全栈之路. 二.安装node.js   接触过后端开发的人都知道,首先要安装服务.作为新手,肯定是选择最简单的可视化安装了(傻瓜式下一步,其它的方式等熟悉相关操作后自然就会了的),通过官网http://nodejs.org/dist/v0.6.1/node-v0.6.1.msi 下载电脑适配的安装包(这个是w

Swagger 1.5.14 发布,RESTful 风格的 Web 服务框架

Swagger 1.5.14 已发布.v1.5.14 添加了一些功能,修复了一些问题. 新功能: 升级 logback 至 1.2.3 #2182 来自命名空间注释更好的支持 XML #2246 支持 Jackson 的 @JsonSerializeAs 注释 #2147 升级 .equals 和 .hashcode #2168 Support getter-less model scanning #2251 修复: Null check in setRequired(...) method i

oracle单实例数据库转换为RAC数据库

测试目的: 单实例数据库转换为RAC数据库 测试环境:Oracle 11.2.0.4 测试方法:手工转换 . 首先,安装一套RAC环境,并把单实例数据库通过通过rman还原到这个环境(通常如果是生产环境,我们会搭建从RAC到单实例数据库的ADG,以减少停机时间). 然后生成一个源库(单实例数据库)spfile: startup pfile=/home/oracle/lunar/spfile.lunardb.tmp 08:07:25 sys@lunardb>show parameter spfil

将备份的SQLServer数据库转换为SQLite数据库操作方法_MsSql

操作方法:先要安装好SQLServer2005,并且记住安装时自己设置的用户名和密码.下面以恢复SQLServer下备份的数据库文件epdmdb20101008.bak为SQLite数据库为例来说明操作的步骤. ① 打开SQLServer2005,如下图所示: 在登陆界面输入登录名和密码,点"连接". 登录之后的界面如下: ② 新建一个数据库. 点左边导航栏的数据库,右键-新建数据库:如下图所示: 在弹出的新建数据库窗口中输入"数据库名称",点"添加&qu

将备份的SQLServer数据库转换为SQLite数据库操作方法

操作方法:先要安装好SQLServer2005,并且记住安装时自己设置的用户名和密码.下面以恢复SQLServer下备份的数据库文件epdmdb20101008.bak为SQLite数据库为例来说明操作的步骤. ① 打开SQLServer2005,如下图所示: 在登陆界面输入登录名和密码,点"连接". 登录之后的界面如下: ② 新建一个数据库. 点左边导航栏的数据库,右键-新建数据库:如下图所示: 在弹出的新建数据库窗口中输入"数据库名称",点"添加&qu

使用WCF的Web编程模型开发REST风格的Web Service

WCF中的Web编程模型提供了一种以REST风格来设计Web Service的功能,它不同于以往基于SOAP或者WS-*规范的Web Service,而是以URI和http协议为中心的.对于操作的每一个资源有唯一的标志符,而利用不同的http动作(例如GET,POST,PUT,DELETE)来对这些资源进行相应的操作.同时该模型中还提供URI Template,它是用来定义参数化的URI,使URI的某些部分作为参数在服务中使用.可能这样解释十分含糊不清,下面用一个小例子来说明这种Web编程模型.

Web服务数据库访问中间件的实现

web|web服务|访问|数据|数据库 摘要:本文分析现有的数据库访问中间件的现状,指出其中存在的问题,得出应用新技术的必要性.开发了一个基于Web服务技术的数据库访问中间件WSDBM,并以一个应用实例验证了该中间件的有效性.关键词:Web服务:数据库访问中间件:.Net 1  引言随着Intranet/Internet网络的迅猛发展,面向网络的分布式数据库成为支持Internet服务的关键,传统的数据库访问技术已渐渐不能满足分布式应用集成的需要.[1]利用新技术,研究和开发新的数据库访问中间件

用ASP.NET 2.0实现AJAX风格的Web开发

ajax|asp.net|web 提要 在过去的几个月中,基于AJAX技术开发高度交互的Web应用程序的设计模式迅速流行开来.现在,具有高度可配置性的Web应用程序,例如Google Maps和A9,都在综合利用这些技术来创造丰富的客户端用户体验.其实,结合AJAX技术进行Web开发并非最近的研究成果,只不过这些技术一直以来不断得到持续更新和改进. 本文中我有三个目的.首先,我想提供一个AJAX风格应用程序的高级概述.其次,我想详细地描述ASP.NET 2.0的异步回调机制.最后,我想对构建AJ