Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Provide some Documentation #16

Closed
iz-iznogood opened this issue Dec 29, 2017 · 5 comments
Closed

Provide some Documentation #16

iz-iznogood opened this issue Dec 29, 2017 · 5 comments
Assignees

Comments

@iz-iznogood
Copy link

iz-iznogood commented Dec 29, 2017

Hi this is an extremely interesting project !!!! Would it be possible to to add some documentation explaining the implemented features and what's still missing/todo ?

Also there are these pages
http://breeze.github.io/doc-net/odata.html
http://breeze.github.io/doc-js/server-odata.html
http://breeze.github.io/doc-net/odata-vs-webapi.html
that relate to oData support and clearly mention issues with oData4. What is the status regarding these issues ?

Thanks

@tschettler tschettler self-assigned this Dec 30, 2017
@tschettler
Copy link
Owner

tschettler commented Dec 30, 2017

Hey, thanks for your interest! Yes I plan to add documentation around features/usage soon. Most of the OData 4 issues discussed by the breeze authors are related to Microsoft's implementation of OData 4, which of course are irrelevant to the client.

Briefly though, the following are supported:

  • Everything breeze already supports with OData 3!
  • Parsing annotations from metadata
  • OData 4 actions and functions
  • OData 4 URL conventions (work in progress)

My current todo list:

  • Usage documentation
  • Unit testing
  • Better method of building requests for actions and functions
  • Support for standard OData vocabularies

Any advanced querying that OData 4 allows can be accomplished by using breeze's pass-thru/literal predicate syntax. There are also some inherent breeze limitations, such as the inability to add missing query functions (Breeze/breeze.js#202) and allowing property paths with the derived type (Breeze/breeze.js#195), the latter of which is a feature of OData as of version 3.

If there's anything else you are specifically looking to do with OData 4, please let me know.

Thanks!

@iz-iznogood
Copy link
Author

Hi thanks this is helpful.

So any normal breeze query is supported I guess, but was about save charges?
Can you provide some insight on this ? Are batch saves implement? Are there any limitations? What about transactions and save order? From what I have read, batch saves are implemented using multiple requests. Is this the case with your implementation ? Is your implementation supporting db transactions?

Thanks

@tschettler
Copy link
Owner

tschettler commented Jan 2, 2018

Batch saving is implemented for save changes. To the client, a save request is the transaction. This library has no understanding of server-side save order, transactions, or databases. However, I have considered possibly splitting - or ordering - the changesets in the batch based on dependencies, but that quickly becomes complicated.

Batch saves use a single HTTP POST request, with the body being a multipart content type representing each individual request that should be performed on the server. Processing the batch request is left up to the server implementation. If you are looking for a method to use database transactions, you may also consider using an OData action.

See also: Responding to a Batch Request

@iz-iznogood
Copy link
Author

Hi, thanks for the info.
I guess if you provide a simple client - server example all will be clear.

I believe it is also important to mention the server side setup, should the controllers inherit from ApiController or ODataController ? What about the BreezeController attribute ?

Sorry for all those questions, if you can provide a basic example all will be clear.

Thanks and sorry again

@tschettler
Copy link
Owner

The server-side controllers should inherit from ODataController. I will try to work on an sample client and server. In the meantime, this should get you started:
https://docs.microsoft.com/en-us/aspnet/web-api/overview/odata-support-in-aspnet-web-api/odata-v4/create-an-odata-v4-endpoint

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants