OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

odata message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: [OASIS Issue Tracker] (ODATA-842) Represent primitive types as JSON Schema formats


     [ https://issues.oasis-open.org/browse/ODATA-842?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Ralf Handl updated ODATA-842:
-----------------------------

    Description: 
Many OData primitive types are JSON Schema primitive types combined with a set of restrictions, e.g. Edm.Int64 is
- "type":"integer",
- "minimum":-9223372036854775808,
- "maximum":9223372036854775807
or Edm.Guid is
- "type":"string",
- "pattern":"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"

There are basically three options:
1) place these in definitions in edm.json and reference them there
2) inline these definitions at each occurrence of the OData primitive type
3) just combine the JSON Schema primitive type with an OData-specific format, e.g.
- type: string
- format: guid
or
- type: integer
- format: int64

The third approach is the most readable and in sync with what Swagger does, see http://swagger.io/specification, section Data Types, and we can try to get these formats into the next version of JSON Schema, see https://github.com/json-schema/json-schema/wiki/%22format%22-suggestions

  was:
Many OData primitive types are JSON Schema primitive types combined with a set of restrictions, e.g. Edm.Int64 is
- "type":"integer",
- "minimum":-9223372036854775808,
- "maximum":9223372036854775807
or Edm.Guid is
- "type":"string",
- "pattern":"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"

There are basically three options:
- place these in definitions in edm.json and reference them there
- inline these definitions at each occurrence of the OData primitive type
- just combine the JSON Schema primitive type with an OData-specific format, e.g.
- type: string
- format: guid
or
- type: integer
- format: int64

The third approach is the most readable and in sync with what Swagger does, see http://swagger.io/specification, section Data Types, and we can try to get these formats into the next version of JSON Schema, see https://github.com/json-schema/json-schema/wiki/%22format%22-suggestions

       Proposal: 
Define specific formats for OData primitive types:
- uuid
- date
- time
- duration
- byte, int8, int16, int32, int64
- double, single
- base64url

  was:Define specific formats for OData primitive types


> Represent primitive types as JSON Schema formats
> ------------------------------------------------
>
>                 Key: ODATA-842
>                 URL: https://issues.oasis-open.org/browse/ODATA-842
>             Project: OASIS Open Data Protocol (OData) TC
>          Issue Type: Bug
>          Components: OData JSON CSDL
>    Affects Versions: V4.0_WD01
>            Reporter: Ralf Handl
>             Fix For: V4.0_WD01
>
>
> Many OData primitive types are JSON Schema primitive types combined with a set of restrictions, e.g. Edm.Int64 is
> - "type":"integer",
> - "minimum":-9223372036854775808,
> - "maximum":9223372036854775807
> or Edm.Guid is
> - "type":"string",
> - "pattern":"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
> There are basically three options:
> 1) place these in definitions in edm.json and reference them there
> 2) inline these definitions at each occurrence of the OData primitive type
> 3) just combine the JSON Schema primitive type with an OData-specific format, e.g.
> - type: string
> - format: guid
> or
> - type: integer
> - format: int64
> The third approach is the most readable and in sync with what Swagger does, see http://swagger.io/specification, section Data Types, and we can try to get these formats into the next version of JSON Schema, see https://github.com/json-schema/json-schema/wiki/%22format%22-suggestions



--
This message was sent by Atlassian JIRA
(v6.2.2#6258)


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]