NodeJS OData(V4) Server Implementation.
This project is under heavy development, if you are looking forward an OData Framework for production usage, please try the SAP CAP Framework
Just check the demo project for features preview.
- OASIS Standard
OData
Version 4.0 server - usable as a standalone server, or as an
Express
router - expose service document and service metadata -
$metadata
- setup metadata using decorators or @odata/metadata
- supported data types are
Edm primitives
,complex types
,navigation properties
- support
create
,read
,update
, anddelete
theEntitySets
, - support
action imports
,function imports
,bounded actions
andbounded functions
onEntitySets
- support for full OData query language using @odata/parser
- filtering entities -
$filter
- sorting -
$orderby
- paging -
$skip
and$top
- projection of entities -
$select
- expanding entities -
$expand
- count records -
$count
- filtering entities -
- support async controller functions using
Promise
,async/await
- support
OData
V4.01 JSON format$batch
operation - support dependency inject
- support
deep insert
Define domain model
class, it will be transformed to database schema.
Define Action/Function
on the Domain Models
.
Using the actions
implement the partially focused business logics, and use the functions
implement complex queries.
Hook is general business logic for specify Domain Model
, like beforeCreate
/beforeUpdate
, and it's mapped from OData
/HTTP Method
.
Define Hooks
to implement the general business logics for entity.
Using services
in hook
/action
/function
, keep the business consistence for single domain model.
Each model will have its own standard CRUD
service which enhanced with hooks
logic.
Each TransactionContext
will use single database transaction (connection).