iseekr-data-bucket
v0.3.1 OData restful-api
node-odata
Create awesome REST APIs abide by OData Protocol v4. Its purpose is to easier to creating APIs, make you more focus on business logic.
var odata = require('node-odata');
odata.set('db', 'mongodb://localhost/my-app');
odata.resources.register({
url: '/books',
model: {
title: String,
price: Number
}
});
odata.listen(3000);
Registers the following routes:
GET /odata/books
GET /odata/books/:id
POST /odata/books
PUT /odata/books/:id
DELETE /odata/books/:id
Use the following OData query:
Example
GET /books?$select=title, author
GET /books?$top=3&$skip=2
GET /books?$orderby=price desc
GET /books?$filter=price gt 10
GET ...
Current State
node-odata is currently at an alpha stage, it is stable but not 100% feature complete. node-odata is written by CoffeeScript then compiled to Javascript. It currently have to dependent on MongoDB yet. The current target is to add more features and make other database adapter (eg. MySQL, PostgreSQL).
Install
npm install node-odata
API
Docs
- ENGLISH DOCUMENTATION (coming soon...)
- 中文文档
Demo
Live demo and try it:
- GET [/books?$select=title, author](http://books.zackyang.com/odata/books?$select=title, author)
- GET /books?$top=3&$skip=2
- GET [/books?$orderby=price desc](http://books.zackyang.com/odata/books?$orderby=price desc)
- GET [/books?$filter=price gt 10](http://books.zackyang.com/odata/books?$filter=price gt 10)
Support Feature
- Full CRUD Support
- $count
- $filter
- Comparison Operators
- eq
- ne
- lt
- le
- gt
- ge
- Logical Operators
- and
- or
- not
- Comparison Operators
- has
- String Functions
- indexof
- contains
- endswith
- startswith
- length
- substring
- tolower
- toupper
- trim
- concat
- Arithmetic Operators
- add
- sub
- mul
- div
- mod
- Date Functions
- year
- month
- day
- hour
- minute
- second
- fractionalseconds
- date
- time
- totaloffsetminutes
- now
- mindatetime
- maxdatetime
- Math Functions
- round
- floor
- ceiling
- Comparison Operators
- $select
- $top
- $skip
- $orderby
- $expand
- $metadata generation (Nonstandard)
CONTRIBUTING
We always welcome contributions to help make node-odata better. Please feel free to contribute to this project.
LICENSE
node-odata is licensed under the MIT license. See LICENSE for more information.