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-1502) Allow to specify expand query options beyond just nested expands (filter, select, ...)


Christof Sprenger created ODATA-1502:
----------------------------------------

             Summary: Allow to specify expand query options beyond just nested expands (filter, select, ...)
                 Key: ODATA-1502
                 URL: https://issues.oasis-open.org/browse/ODATA-1502
             Project: OASIS Open Data Protocol (OData) TC
          Issue Type: Improvement
            Reporter: Christof Sprenger


In the current state, [ExpandRestrictions|http://example.com/]https://github.com/oasis-tcs/odata-vocabularies/blob/ee275ab8006b9f6a93e8e817656838dcd623da0d/vocabularies/Org.OData.Capabilities.V1.xml#L524] can specify the forbidden *nested* expansions via the NonExpandableProperties but can't specify the other nested query options.

For example the request \{{ GET /orders/?$expand=items($expand=sku) }} is allowed with Capabilities annotation that allows expansion for the paths \{{ [ "items", "items/sku" ] }}.
 But the capabilities a) needs to list the NonExpandableProperties b) has no way to specify if there is a filter restriction allowed inside of the expanded \{{ items }} ( \{{ GET /orders/?$expand=items($expand=sku; $filter=count gt 10) }} )

This is different for other restrictions that typically are used as part of a NavigationPropertyRestriction that lists the NavigationProperty Path together with all kinds of restrictions.

Hypothetical

{{<Annotations Target="example.com.Service/orders">}}
{{Â <Annotation Term="Org.OData.Capabilities.V1.NavigationRestrictions">}}
{{Â Â <Record Type="Org.OData.Capabilities.V1.NavigationRestrictionsType">}}
{{Â Â Â <PropertyValue Property="RestrictedProperties">}}
{{Â Â Â Â <Collection>}}
{{Â Â Â Â Â <Record Type="Org.OData.Capabilities.V1.NavigationPropertyRestriction">}}
{{Â Â Â Â Â Â <PropertyValue Property="NavigationProperty" NavigationPropertyPath="items" />}}
{{Â Â Â Â Â Â <PropertyValue Property="ExpandRestrictions">}}
{{Â Â Â Â Â Â Â <Record Type="Org.OData.Capabilities.V1.ExpandRestrictionsType">}}
{{Â Â Â Â Â Â Â </Record>}}
{{Â Â Â Â Â Â </PropertyValue>}}
{{Â Â Â Â Â </Record>}}
{{Â Â Â Â Â <Record Type="Org.OData.Capabilities.V1.NavigationPropertyRestriction">}}
{{Â Â Â Â Â Â Â<PropertyValue Property="NavigationProperty" NavigationPropertyPath="items/sku" />}}
{{Â Â Â Â Â Â Â<PropertyValue Property="ExpandRestrictions">}}
{{Â Â Â Â Â Â Â Â<Record Type="Org.OData.Capabilities.V1.ExpandRestrictionsType">}}
{{Â Â Â Â Â Â Â Â</Record>}}
{{Â Â Â Â Â Â Â</PropertyValue>}}
{{Â Â Â Â Â </Record>}}
{{Â Â Â Â </Collection>}}
{{Â Â Â </PropertyValue>}}
{{Â Â </Record>}}
  </Annotation>
 </Annotations>


But that doesn't quite capture the situation since the ExpandRestriction is not restricting the navigation property it is "applied to" (items and items/sku) in the above but rather is restricting the navigation properties of the structured type of structured type it is applied to (hence the NonExpandableProperties)



--
This message was sent by Atlassian Jira
(v8.3.3#803004)


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