从数据库模式生成基于REST的服务
我使用了NetBeans的功能,可以根据一个(关系型)数据库的结构自动生成一个完整的REST服务API。这个功能的详细说明可以在这里找到:http://netbeans.org/kb/docs/websvc/rest-mysql.html
我在寻找类似的功能,适用于其他数据库(比如NoSQL数据库,如AWS的SimpleDB或GAE的DataStore),或者其他编程语言,比如Python。也就是说,我希望有一个工具可以自动生成这些重复的代码。因为在对象和REST服务之间建立一一对应的关系其实没有什么价值,这个过程应该由所有框架自动完成。
到目前为止,我找到的唯一一个可以自动生成服务的框架是AppEngine-REST-Server(当然还有NetBeans)。你可以在这里查看:http://code.google.com/p/appengine-rest-server/
我有两个问题:
- 还有哪些其他库我应该考虑?
- 有没有人使用过AppEngine-REST-Server?
- 有没有人在SimpleDB上使用过REST(顺便说一下,亚马逊提供的SimpleDB的HTTP API并不是REST的)?
谢谢!
Seb
3 个回答
另外,可以看看 Yii 框架 2.0,它支持 REST 的 HATEOAS 级别。你可以在这里找到相关信息:http://www.yiiframework.com/doc-2.0/guide-rest.html
我为我的网站创建了一个使用SpringMVC 3.0的REST服务。这个框架非常简单,创建REST服务时特别友好。如果我是你,我会考虑使用这个。你可以看看这个链接:使用Spring 3构建RESTful网络服务
通过这个设置,你基本上可以把任何有Java API的东西包装成一个在经过验证的Tomcat服务器上运行的REST服务。
web2py 是一个用 Python 写的网页开发框架,最近它增加了一项新功能,可以根据你定义的数据模型自动生成 RESTful API。
如果你已经有了一个数据库结构,你需要用 web2py 的数据库抽象层(DAL)来建模,这样才能使用这个新的 RESTful API 功能。为了让这个过程更简单,有一些脚本可以从现有的 MySQL 和 PostgreSQL 数据库自动生成 web2py 的 DAL 模型(这些脚本也可以很容易地适配其他数据库)。
需要注意的是,web2py 的 DAL(以及这个 RESTful API 功能)可以作为一个独立的模块使用,不需要依赖整个 web2py 框架(也就是说,你可以把它用在其他网页框架或 Python 程序中)。此外,DAL 不仅可以与大多数关系型数据库配合使用,还可以与 Google App Engine 的数据存储一起使用(而且正在增加对 CouchDB 和 MongoDB 的支持)。
如果你有任何问题,欢迎在 web2py 邮件列表 上提问。我们也很乐意听取你对新 REST 功能的反馈。