node-odata v0.7.16
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');
var server = odata('mongodb://localhost/my-app');
server.resource('books', {
title: String,
price: Number
});
server.listen(3000);
Registers the following routes:
GET /books
GET /books(:id)
POST /books
PUT /books(:id)
DELETE /books(:id)
Use the following OData query:
Example
GET /books?$select=id, title
GET /books?$top=3&$skip=2
GET /books?$orderby=price desc
GET /books?$filter=price gt 10
GET ...
Further options
The odata constructor takes 3 arguments: odata(<mongoURL>, <dbPrefix>, <options>);
The options object currently only supports one parameter: expressRequestLimit
, this will be parsed to the express middelware as the "limit" option, which allows for configuring express to support larger requests. It can be either a number or a string like "50kb", 20mb", etc.
Current State
node-odata is currently at an beta stage, it is stable but not 100% feature complete. node-odata is written by ECMAScript 6 then compiled by babel. It currently have to dependent on MongoDB yet. The current target is to add more features (eg. $metadata) and make to support other database. (eg. MySQL, PostgreSQL).
Installation
npm install node-odata
DOCUMENTATION
Demo
Live demo and try it:
- GET /book?$select=id, title(http://books.zackyang.com/book?$select=id, title)
- GET /book?$top=3&$skip=2
- GET /book?$orderby=price desc(http://books.zackyang.com/book?$orderby=price desc)
- GET /book?$filter=price gt 10(http://books.zackyang.com/book?$filter=price gt 10)
Support Feature
- Full CRUD Support
- $count
- $filter
- Comparison Operators x eq x ne x lt x le x gt x ge
- Logical Operators x and x or * not
- Comparison Operators
- has
- String Functions x indexof x contains endswith startswith length substring tolower toupper trim concat
- Arithmetic Operators add sub mul div * mod
- Date Functions x year month day hour minute second fractionalseconds date time totaloffsetminutes now mindatetime * maxdatetime
- Math Functions round floor * ceiling
- $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.
7 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago