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-928) Allow client to use OData-SchemaVersion header to indicate the metadata version it is using


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

Michael Pizzo updated ODATA-928:
--------------------------------

    Proposal: 
Moving accepted proposal from comments. Note that (as per ODATA-937 we dropped the OData- prefix):
 1) Services MUST NOT make breaking changes to $metadata responses requested without an SchemaVersion header 
 2) Services MUST interpret requests (and return payloads) made without an SchemaVersion according with this unbroken $metadata 
 2) Clients that retrieve $metadata containing the SchemaVersion annotation SHOULD include the SchemaVersion header in all requests for data, and MAY include SchemaVersion in requests for $metadata 
 3) The value of the SchemaVersion header, if specified, MUST be a value returned in the SchemaVersion annotation in a previous request to $metadata, or the special value "Latest" to interpret the request for data or metadata according to the latest schema. 
 4) If the SchemaVersion header is present in a request for data, services must interpret requests and return responses compatible that version of metadata. 
 5) If the SchemaVersion header is present in a request for $metadata, services must return metadata compatible with (i.e., with no breaking changes from) the specified version. 
 6) If the specified version is invalid, the service should return a 400 error. 


Client can set an OData-SchemaVersion header in requests.

Server may (these are example possibilities, possibilities, not requirements) use this information in a number of ways:

(1) Refuse requests from the client if the server's metadata version is now incompatible with the version the client has indicated it is using.

(2) Include extra metadata in responses, e.g. "@odata.type" for properties which weren't in the client's versin of the metadata, but now exist in the server's version (e.g. this allows the client to correctly treat those properties as dynamic, while knowing their proper type).



  was:
See accepted proposal in comments:

Client can set an OData-SchemaVersion header in requests.

Server may (these are example possibilities, possibilities, not requirements) use this information in a number of ways:

(1) Refuse requests from the client if the server's metadata version is now incompatible with the version the client has indicated it is using.

(2) Include extra metadata in responses, e.g. "@odata.type" for properties which weren't in the client's versin of the metadata, but now exist in the server's version (e.g. this allows the client to correctly treat those properties as dynamic, while knowing their proper type).




> Allow client to use OData-SchemaVersion header to indicate the metadata version it is using
> -------------------------------------------------------------------------------------------
>
>                 Key: ODATA-928
>                 URL: https://issues.oasis-open.org/browse/ODATA-928
>             Project: OASIS Open Data Protocol (OData) TC
>          Issue Type: New Feature
>          Components: OData Protocol
>    Affects Versions: V4.01_WD01
>            Reporter: Evan Ireland
>            Priority: Minor
>             Fix For: V4.01_WD01
>
>
> Once we define a standard annotation term to allow the metadata author to define a schema version, it would be extremely useful for clients to be able to indicate to the server which version of the metadata document the client is working with (since no matter when the client received the metadata, it may since have changed at the server).



--
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]