Skip to content

A library for easily create OData REST API, abide by OData protocol.

License

Notifications You must be signed in to change notification settings

giovannidegani/node-odata

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

NPM Version npm Build Status License

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

Demo

Live demo and try it:

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
  • $select
  • $top
  • $skip
  • $orderby
  • $expand
  • $metadata generation (Nonstandard)
  • XML/JSON format

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.

About

A library for easily create OData REST API, abide by OData protocol.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 91.5%
  • CSS 7.7%
  • Makefile 0.8%