OData, 相信身为 .NET 程序员应该不为陌生, 尤为是它的实现: ASP.NET WEB API OData. 对于 OData, 官网上对其的定义是html
OData - the best way to REST An open protocol to allow the creation and consumption of queryable and interoperable RESTful APIs in a simple and standard way.
可见 OData 是一个基于 REST 的 数据协议. OData 全名"开放数据协议(Open Data Protocol)", 是一个用于 web 的数据访问协议. OData 提供了一个统一的风格来来查询和维护数据集. 这里有一篇博文描述了 OData 想要解决的问题: 关于 OData 协议.node
node-odata 是彻底遵循 OData V4 协议实现的一套 OData REST API 框架, 它基于 NodeJS, 使用 ECMAScript 6 编写, 发布于 npm.git
node-odata 同时结合了 OData 强大的数据查询能力以及 NodeJS 支持高并发的优点, 使开发者能快速的建立一个高性能并支持各类复杂查询的 REST API.程序员
在常规的 REST 框架中, 其只提供了 REST 风格的 CRUD 操做. 开发者不得不对每个资源都手动添加一些公共功能, 如排序/分页等. 甚至在多数复杂的业务场景中, 开发者须要一次次根据业务需求定制出特定的复杂查询 API, 这都极大的浪费了人力资源. OData数据访问协议很好的解决了这一问题. 它定义了$filter, $orderby, $select等一系列关键字来进行统一的筛选, 排序, 分页等操做. 极大的减轻了开发者的负担, 提升了生产力.github
反观 OData 社区, 目前 node-odata 是惟一一款基于 NodeJS 的服务端 OData 框架. 与其它编译型语言的 OData 实现相比, 它运行更加高效, 部署更加方便, 编写更加简单 (4行代码便可初始化一个 OData 服务).web
OData最大的特色就是他彻底暴露的数据接口, 服务端只须要几行代码就能让客户端实现为所欲为的查询, 下面以一个图书 API 为例:mongodb
而实现这一切功能, 只须要 4 行代码.npm
安装完成并启动 MongoDB 以后, 您能够开始安装 node-odata并发
$ npm install node-odata
建立文件 server.js, 输入如下代码:
var odata = require('node-odata'); var server = odata('mongodb://localhost/my-app'); server.resource('books', { title: String, price: Number }); server.listen(3000);
保存并运行
$ node server
您便可访问 http://localhost:3000/books, 您可使用如下方式亲自试试:
GET /books GET /books/:id POST /books PUT /books/:id DELETE /books/:id
完整的 API 文档见 这里.
我使用 node-odata 构建了我本身我的站点: zackyang.com, 源码 请戳这里.
该项目基于 MIT 协议, 其源码托管于 github, 欢迎点赞.