作者:Andrea Di Cesare, Maurizio Turatti
RESTHeart是SoftInstigate公司创建并开发的开源项目。
MongoDB的WEB操作接口
RESTHEART是MongoDB的WEB操作接口,启动RESTHeart就能通过WEB纯净、安全、完整的RESTful接口来打开MongoDB。
RESTHeart利用MongoDB面向文档的特性,创建一个可通过Http访问的外部资源和MongoDB内部数据存储的自动映射,实现了一个通过HATEOAS(Hypermedia as the Engine of Application State超媒体作为应用状态的引擎)代理相互兼容的模型,客户端使用的状态是完整的被http动作驱动的例如:GET、POST、PUT、PATCH、DELETE等等.
特性
- 可以在不需要任何编码的情况下被使用轻量级的服务器接口
- 完全遵守HTTP, JSON, RESTful, HAL, JSON Schema标准
- 通过已经准备好的身份管理和基于角色的访问管理实现可插入式的身份认证和授权
- 数据操作接口:create, read, update, delete and query documents
- 在每个写操作中支持点符号和更新操作
- 批量操作(再一次请求中创建,更新,删除多条文档数据)
- 在文件存储中支持二进制数据
- 聚合操作同时支持map reduce和aggregation pipeline
- 数据级别操作接口可以创建数据库、集合和索引
- 通过JSON Schema进行数据格式验证
- WebHook可以在request结束后调用其它web资源
- 可以定义文档自动包含超链接映射引用数据的关系
- 在请求中容易的应用转换和检查逻辑
- 提供静态资源(例如html和js)和自定义应用逻辑
- 支持浏览器web缓存和通过Etag避免重复提交
- 跨域资源共享CORS
- 通过内嵌HAL browser 在浏览器中浏览您的数据
做了什么
RESTHEART无缝的连接到MongoDB安全的在web上暴露出了数据库和集合。
所有被授权过(授权与认证已经被做成了开箱即用的方式)的客户端都可以通过RESTHeart的接口与MongoDB互动。
文档数据可以被GET动作读取,可以被PUT、POST和PATCH动作创建和修改,可以通过DELETE动作被删除
数据以JSON的格式被交换(实际上是标准的hal+json的mediatype)
hal是一种在你的接口中为资源数据赋予超链接的一致和简单的格式。
下面这个图片描绘了一个简单的应用场景。一个博客应用客户端发送一个GET请求/blog/posts 以分页形式获取回复数据。
如果你有问题?
如果你有任何问题要问,可以去 Github issues或者*里提问或寻找答案。
源码
RESTHeart基于JAVA8开发,运行于Undertow HTTP服务器的顶层,所有源码可以在Github上找到。
原文地址:(https://softinstigate.atlassian.net/wiki/display/RH/Home)。转载请注明出处