OData Conformance Level
ODataDB implements most features of OData version 4.01.
For the latest OData protocol specifications, check out the following links:
The table below summarizes the support for various specification conventions.
OData Minimal Conformance Level | |
---|---|
1. MUST publish a service document at the service root (section 11.1.1) | ✓ |
2. MUST return data in at least one OData-defined format (section 7) | ✓ |
3. MUST support server-driven paging for partial results (section 11.2.5.7) | ✓ |
4. MUST return the appropriate OData-Version header (section 8.1.5) | ✓ |
5. MUST conform to the semantics of the following headers, or fail the request | ✓ |
5.1. Accept (section 8.2.1) | ✓ |
5.2. OData-MaxVersion (section 8.2.7) | ✓ |
6. MUST follow OData guidelines for extensibility (section 6 and all subsections) | ✓ |
7. MUST successfully parse requests according to [OData-ABNF] for supported system query options and either follow the specification or return 501 Not Implemented for unsupported functionality (section 9.3.1) | ✓ |
8. MUST expose only data types defined in [OData-CSDL] | ✓ |
9. MUST NOT require clients to understand any metadata or instance annotations (section 6.4), custom headers (section 6.5), or custom content (section 6.2) in the payload to correctly consume the service | ✓ |
10. MUST NOT violate any OData update semantics (section 11.4 and all subsections) | ✓ |
11. MUST NOT violate any other OData-defined semantics | ✓ |
12. SHOULD support $expand (section 11.2.4.2) | ✓ |
13. MAY publish metadata at $metadata according to [OData-CSDL] (section 11.1.2) | ✓ |
Updatable OData Service | |
14. MUST include edit links (explicitly or implicitly) for all updatable or deletable resources according to [OData-Atom] and [OData-JSON] | ✓ |
15. MUST support POST of new entities to insertable entity sets (sections 11.4.1.5 and 11.4.2.1) | ✓ |
16. MUST support POST of new related entities to updatable navigation properties (section 11.4.6.1) | x |
17. MUST support POST to $ref to add an existing entity to an updatable related collection (section 11.4.6.1) | x |
18. MUST support PUT to $ref to set an existing single updatable related entity (section 11.4.6.3) | x |
19. MUST support PATCH to all edit URLs for updatable resources (section 11.4.3) | ✓ |
20. MUST support DELETE to all edit URLs for deletable resources (section 11.4.5) | ✓ |
21. MUST support DELETE to $ref to remove an entity from an updatable navigation property (section 11.4.6.2) | x |
22. MUST support if-match header in update/delete of any resources returned with an ETag (section 11.4.1.1) | x |
23. MUST return a Location header with the edit URL or read URL of a created resource (section 11.4.1.5) | ✓ |
24. MUST include the OData-EntityId header in response to any POST/PATCH that returns 204 No Content (Section 8.3.3) | ✓ |
25. MUST support Upserts (section 11.4.4) | ✓ |
26. SHOULD support PUT and PATCH to an individual primitive (section 11.4.9.1) or complex (section 11.4.9.3) property (respectively) | x |
27. SHOULD support DELETE to set an individual property to null (section 11.4.9.2) | x |
28. SHOULD support deep inserts (section 11.4.2.2) | x |
OData Intermediate Conformance Level | |
1. MUST conform to the OData Minimal Conformance Level | x |
2. MUST successfully parse the [OData-ABNF] and either follow the specification or return 501 Not Implemented for unsupported functionality (section 9.3.1) | ✓ |
3. MUST support $select (section 11.2.4.1) | ✓ |
4. MUST support casting to a derived type if derived types are present in the model (according to [OData URL]) | x |
5. MUST support $top (section 11.2.5.3) | ✓ |
6. MUST support /$value on media entities (section 4.10 in [OData URL]) and individual properties (section 11.2.3.1) | ✓ |
7. MUST support $filter (section 11.2.5.1) | ✓ |
7.1. MUST support eq, ne filter operations on properties of entities in the requested entity set (section 11.2.5.1.1) | ✓ |
7.2. MUST support aliases in $filter expressions (section 11.2.5.1.3) | ✓ |
7.3. SHOULD support additional filter operations (section 11.2.5.1.1) and MUST return 501 Not Implemented for unsupported operations (section 9.3.1) | ✓ |
7.4. SHOULD support canonical functions (section 11.2.5.1.2) and MUST return 501 Not Implemented for unsupported functions (section 9.3.1) | ✓ |
7.5. SHOULD support $filter on expanded entities (section 11.2.4.2.1) | ✓ |
8. SHOULD publish metadata at $metadata according to [OData-CSDL] (section 11.1.2) | ✓ |
9. SHOULD support the [OData-JSON] format | ✓ |
10. SHOULD consider supporting basic authentication as specified in [RFC2617] over HTTPS for better interoperability with generic clients | ✓ |
11. SHOULD support the $search system query option (section 11.2.5.6) | ✓ |
12. SHOULD support the $skip system query option (section 11.2.5.4) | ✓ |
13. SHOULD support the $count system query option (section 11.2.5.5) | ✓ |
14. SHOULD support $expand (section 11.2.4.2) | ✓ |
15. SHOULD support the lambda operators any and all on navigation- and collection-valued properties (section 5.1.1.5 in [OData URL]) | x |
16. SHOULD support the /$count segment on navigation and collection properties (section 11.2.9) | ✓ |
17. SHOULD support $orderby asc and desc on individual properties (section 11.2.5.2) | ✓ |
OData Advanced Conformance Level | |
1. MUST conform to at least the OData Intermediate Conformance Level | x |
2. MUST publish metadata at $metadata according to [OData-CSDL] (section 11.1.2) | ✓ |
3. MUST support the [OData-JSON] format | ✓ |
4. MUST support the /$count segment on navigation and collection properties (section 11.2.9) | ✓ |
5. MUST support the lambda operators any and all on navigation- and collection-valued properties (section 5.1.1.5 in [OData URL]) | x |
6. MUST support the $skip system query option (section 11.2.5.4) | ✓ |
7. MUST support the $count system query option (section 11.2.5.5) | ✓ |
8. MUST support $orderby asc and desc on individual properties (section 11.2.5.2) | ✓ |
9. MUST support $expand (section 11.2.4.2) | ✓ |
9.1. MUST support returning references for expanded properties (section 11.2.4.2) | x |
9.2. MUST support $filter on expanded entities (section 11.2.4.2.1) | ✓ |
9.3. MUST support cast segment in expand with derived types (section 11.2.4.2.1) | x |
9.4. SHOULD support $orderby asc and desc on individual properties (section 11.2.4.2.1) | x |
9.5. SHOULD support the $count system query option for expanded properties (section 11.2.4.2.1) | ✓ |
9.6. SHOULD support $top and $skip on expanded properties (section 11.2.4.2.1) | x |
9.7. SHOULD support $search on expanded properties (section 11.2.4.2.1) | x |
9.8. SHOULD support $levels for recursive expand (section 11.2.4.2.1.1) | x |
10. MUST support the $search system query option (section 11.2.5.6) | x |
11. MUST support batch requests (section 11.7 and all subsections) | ✓ |
12. MUST support the resource path conventions defined in [OData URL] | x |
13. SHOULD support asynchronous operations (section 8.2.8.8) | x |
14. SHOULD support delta change tracking (section 8.2.8.6) | x |
15. SHOULD support cross-join queries defined in [OData URL] | x |
16. SHOULD support a conforming OData service interface over metadata (section 11.1.3) | x |