jaystack / odata-v4-server

With JayStack OData v4 Server you can build your own data endpoints without the hassle of implementing any protocol-level code. This framework binds OData v4 requests to your annotated controller functions, and compiles OData v4 compatible response. Clients can access services through OData-compliant HTTP requests. We recommend the JayData library for consuming OData v4 APIs.
https://jaystack.com/products/jaystack-odata-v4-server/
75 stars 55 forks source link

Unsupported features #30

Closed kyvour closed 3 years ago

kyvour commented 6 years ago

Hi I have a question about unsupported odata-v4-server features (http://jaydata.org/jaystack-odata-v4-server-features)

Now I'm choosing tech stack for the OData API project based on the data from MSSQL database. Nodejs with jaydata/odata-v4-server looks like a good candidate for it, but the goal of the project is 100% compliance with the OData standard.

In the same time JayStack OData v4 Server doesn't support a set of features.

So the questions are:

  1. Is it possible to implement unsupported features by myself on the server level or these features are unsupported on the JayData library / odata-v4-parser?
  2. Does the odata-v4-parser support 100% of OData standard ?
  3. If unsupported features are unsupported on server/jaydata lib level, but supported by odata-v4-parser, is there some ways/examples etc. how is it possible to create missing features ?
lazarv commented 6 years ago

Hi @kyvour,

  1. odata-v4-parser supports the full OData query language. The features are missing on the connector level. You can implement custom connectors, you can even extend the current featureset and use your custom connector in the ODataController implementations.

  2. Yes, it's feature complete. Only the aggregation operators are missing, but this is only an extension of the OData standard.

  3. You have to modify the Visitor class of an existing connector, like odata-v4-sql: https://github.com/jaystack/odata-v4-sql/blob/master/src/visitor.ts. This connector is lightweight currently and you can modify or add Visit functions to the class to handle the AST created by the odata-v4-parser.