使用sqlRest将数据库转换为REST风格的Web服务 - 编程入门网
可以尝试用上文类似的 URL 来测试该 EMPLOYEE REST 服务,您可以充分的感受到 sqlRest 的方便和快捷。也许您会问,难道唯一的 URL 只能要求数据库的唯一主键吗?当然不是这样的,这取决于服务器端框架对 URL 的约定,我们完全可以使用更复杂的 URL 来表示资源,但是需要服务器端支持对更复杂 URL 的解析功能和对多字段主键的支持。我们相信 sqlRest 将来的版本将提供对数据库多键的支持,但是现在我们只能使用单一字段作为 URL 中的主键。读者如果需要,可以对 sqlRest 的源码进行一定的修改来支持更为复杂的 URL 格式,这样的修改不是很麻烦。
也许有读者会问,修改现有的表,使其满足 sqlRest 的要求,还算可以容忍,但是删除数据库中其它不满足条件的表就不对了,如果有的是系统表怎么办?在我们的例子中,我们使用 DB2 的示例表主要是从简单的角度出发,实际项目中,可能有两种情况: 1 完全重新设计数据库 : 此时只要满足 sqlRest 主键的要求就没有问题, 2 基于现有数据库的应用 : 此时就需要对现有数据库进行改造,但这显然会影响已有的应用,因此我们不推荐(上文我们对 Sample 数据库的修改只是作为示例)。 对于暂时没有成为 REST 资源的表,又不想改造数据,我们可以通过一个简单的方法来实现。我们的做法是直接修改 sqlRest 的源码,这个修改非常简单,我们只要修改 DatabaseAnalyser 类的 getDatabaseInfo 方法,使得 sqlRest 在解析数据库表的时候不要抛出异常,遇见不满足条件的表就自动跳过就可以,这样的修改不影响已有的满足条件的表。 目前 sqlRest 还有一个限制就是每次配置只能使用一个数据库,这时候因为 URL 的契约中并没有使用数据库的名字作为名字空间,同样的道理,通过对源码的学习我们也意识到修改源码实现对多数据库的支持并不是很困难的事情。使用开源软件的好处之一就在于您可以根据自己的需要对它进行修改。 结束语 通过本文我们可以了解到 sqlRest 的设计思想,就是将数据库资源直接暴露为 REST 服务,这样可以大量的节省我们的重复编码,提高 We2.0 时代处理数据库资源的快捷,同时我们也看 sqlRest 的一些不足和有待发展的地方。我们注意到在互联网世界中,存在一些大量使用数据库资源的应用,使用 sqlRest 这种将数据库资源直接暴露为 REST 服务的方式可以极大的提高效率,降低开发和后台维护的成本。对于这样一类应用,sqlRest 这种模式无疑是有很大的用武之地的。因此我们可以预见将来的数据库很可能会内置对 REST 服务的支持,就像对现在的一些数据库会内置对 SOAP Web 服务的支持一样。 声明:本文仅代表作者的个人观点,不代表 IBM 的立场。 本文配套源码 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |