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-923) Support subsetting returned metadata

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

Michael Pizzo updated ODATA-923:

Add a new preference, metadata-scope, that can be specified on a metadata request. The value follows the syntax for the fragment portion of a context URL to describe the shape of results for which the client needs metadata.

Clients can then extract the fragment portion of the context url to use in the preference to requests only the metadata required to describe that particular response.  If the response spans multiple namespaces the service MAY include multiple schema elements in the response, one per namespace containing types used in the response.  Since this is a preference, services can also ignore and just return the metadata with references to related metadata.

Services that support the metadata-scope preference SHOULD include a preference-applied header specifying the contextUrl fragment identifying the results described by the returned metadata.

Example: to include the metadata required to describe customers and their orders, the client could specify:

Prefer: metadata-scope=Customers(Orders)

The value of $expand (or $include) is a comma-separated list of namespaces, or * to include all directly referenced namespaces. 

Similar to $expand=* this can be suffixed with $levels, e.g. $include=*($levels=2) or $include=*($levels=max) 

The result is a document that contains all schemas that are part of a response without $include plus at least all schemas matching the $include option.

Alternate Proposal:
Add a new preference, include-schemas, that can be specified on a metadata request. The value is a semicolon-separated list of Namespace or alias names within the referenced document. Specified namespaces are included as separate schema elements in the returned response, using the namespace alias (if any) defined in the referencing document. "*" may be used to specify all namespaces within the referenced document, and may be suffixed by an integer or "max", enclosed in parenthesis, to specify a number of levels to include. 

As the preference is a hint, services should never error because they don't support the preference or if they can't parse the value of a preference that they do support. Services that support the preference may include some, but not all, of the requested schemas, but SHOULD NOT return more than the requested set of namespaces. Services that support the include-schemas preference SHOULD include a preference-applied header specifying the set of schemas included.

Example: include the Customers and Orders namespaces:
Prefer include-schemas=Customers;Orders

Example: include all namespaces referenced by this document, recursively:
Prefer include-schemas=*(max)

> Support subsetting returned metadata
> ------------------------------------
>                 Key: ODATA-923
>                 URL: https://issues.oasis-open.org/browse/ODATA-923
>             Project: OASIS Open Data Protocol (OData) TC
>          Issue Type: Improvement
>          Components: OData CSDL
>    Affects Versions: V4.0_ERRATA03
>            Reporter: Ralf Handl
>            Assignee: Michael Pizzo
>             Fix For: V4.01_CSD02
> After being able to partition large services into smaller ones using cross-service navigation we might want to support requesting multiple of these small files in one request, similar to expanding an entity and including related entities.

This message was sent by Atlassian JIRA

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