This repository has been archived by the owner on Dec 29, 2020. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
OData Conformance
Trevor Pilley edited this page Jan 19, 2018
·
4 revisions
The goal is to meet the OData Minimal Conformance Level.
In order to conform to the OData Minimal conformance level, a service:
- 1. MUST publish a service document at the service root (section 11.1.1) see Service Document
- 2. MUST return data according to at least one of the OData defined formats (section 7)
- JSON - Full
- XML - TODO
- 3. MUST support server-driven paging when returning 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 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 the request according to [OData-ABNF] for any supported system query string options and either follow the specification or return 501 Not Implemented (section 9.3.1) for any unsupported functionality (section 0)
- 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 in order 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)
In addition, to be considered an Updatable OData Service, the 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 (section 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)
- 17. MUST support POST to $ref to add an existing entity to an updatable related collection (section 11.4.6.1)
- 18. MUST support PUT to $ref to set an existing single updatable related entity (section 11.4.6.3)
- 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)
- 22. MUST support if-match header in update/delete of any resources returned with an ETag (section 11.4.1.1)
- 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 create or upsert operation 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)
- 27. SHOULD support DELETE to set an individual property to null (section 11.4.9.2)
- 28. SHOULD support deep inserts (section 11.4.2.2)