-
Type: Bug
-
Status: Closed
-
Priority: Major
-
Resolution: Fixed
-
Affects Version/s: V4.01_WD01
-
Fix Version/s: V4.01_WD01
-
Component/s: CSDL JSON
-
Labels:None
-
Environment:
[Proposed]
-
Proposal:
-
Resolution:
For the past year we have investigated defining a JSON representation of metadata based on JSON Schema and, more recently, Swagger. Because this was to serve as a JSON alternate to XML for describing the service it had to have full fidelity with the XML representation.
JSON Schema was defined as a validation language and lacks many of the core concepts necessary for defining a service model, such as inheritance, relationships, identity, etc. While JSON Schema itself is extensible, the desire to align with Swagger further restricted how we could define OData extensions.
The current draft for a Swagger/JSON Schema aligned metadata representation is a compromise both from a Swagger/JSON Schema perspective as well as from an OData perspective. Limitations in JSON Schema and Swagger make trying to describe OData concepts through extensions cumbersome and verbose for OData consumers. The added extensions also make it verbose for JSON Schema/Swagger tools and community.
OAI is itself investigating relaxing its reliance on JSON Schema, allowing other suitable formats to be plugged in based on supported payload formats.