需求
我们要为mongodb提供restful api,直到目前我对restful api的设计也没有谱,只知道自己目前需要满足的需求
- 支持条件查询,使用mongodb命令就是db.coll.find({name: "spe"}),特别的,要求接口支持name:/spe/这种模糊查询
- 支持display fields
- 支持sortby, skip, limit
- 支持insert, update
- 通过http get, put, post 时需要对操作的用户加以验证
说白了,就是把mongodb一些常用的操作用restful api表现出来,使得通过http的几个操作就能完成。
作为一款成熟的KV数据库,mongodb应该已经把这件事做好了吧,这是我最初的想法。的确,mongodb提供了一个
simple http interface,但这个接口为了安全仅支持查询操作,并且相关文档相当少,不过它推荐了若干第三方库,我逐个看了这几个库
第三方库
代码需要用java写,所以其他语言的库就不考虑了,重点看两个库
RESTHeart, spring data rest
RESTHeart(JDK 1.8)
RESTHeart 是开源软件,它的源代码可以在github下找到,因为项目使用JDK1.6,所以RESTHeart我也不能用,但是我看了它的描述,觉得它API的风格很讨人喜欢,于是我下载了它的code尝试从code何api两方面吸取经验