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-1064) Add ability to annotate collections to return only count and NextLink

    [ https://issues.oasis-open.org/browse/ODATA-1064?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=67780#comment-67780 ] 

George Ericson commented on ODATA-1064:

On Michael's comments: 

1) This could also apply to entityset
[GME] Agree 

 2) We could make this part of navpropertyrestrictions, but 
    a) it's not really a restriction, it's an extension 
    b) putting it on the nav property, while not ideal (we would rather annotate in the container, for portability of types) is consistent with AutoExpand[References] 
[GME] The effect of an annotation is clearer when co-located with the annotated schema element.

 3) I'm okay with count; unsure on etag (isn't that always returned if available anyway?) and dislike having navigationlink and associationlink as those are conceptually always there as part of the response, and their omission when they follow convention is a json format specific serialization optimization. 
[GME] on etag, let's discuss.  Might not need.  
[GME] The issue with navigationlink and associationlink is when metadata = minimal, the JSON spec allows the service to omit navigationlink and associationLink when they match the read URL. If the client does not know the navigation property name, then $expand or $ref are not useful.  This is the same reason that AutoExpand and AutoExpandReferences are needed.

 4) We should be clear that inclusion of nav/association links is only the default, in absence of a select 
[GME] Agree
 5) Note that the navigation link in the example above is wrong. The actual navigation link annotation value would just be the URL: 
 "Systems@odata.navigationLink": "/redfish/v1/Systems" 
 Also note that this navigationLink returns the actual related Systems, not just the ids of the related systems, which would be the associationLink: 
[GME] Agree

 6) Rather than "AutoMetadata" I would use something like "IncludeMetadata". I understand that "Auto" was meant to be consistent with "AutoExpand[References]", but in the later "Auto" is describing the verb "Expand", where-as "AutoMetadata" lacks a verb. We could call it "AutoIncludeMetadata", but I think that "IncludeMetadata" is probably sufficient. 
[GME] Agree

> Add ability to annotate collections to return only count and NextLink
> ---------------------------------------------------------------------
>                 Key: ODATA-1064
>                 URL: https://issues.oasis-open.org/browse/ODATA-1064
>             Project: OASIS Open Data Protocol (OData) TC
>          Issue Type: New Feature
>          Components: Vocabularies
>    Affects Versions: V4.0_CSD01
>         Environment: System with entities containing multiple large collections
>            Reporter: George Ericson
>            Assignee: George Ericson
>              Labels: Proposed, request_tc_discussion
>             Fix For: V4.0_CSD02
> Issues with NavigationProperty
> 1)	If AutoExpand or AutoExpandReferences is not specified, then a GET without $expand or $ref query parameters will not return any representation of declared NavigationProperties.
> 2)	If AutoExpand or AutoExpandReferences is specified, the concern is that the returned representation of the containing entity might be too large.
> 3)	For an EntityType containing many NavigationProperties, it is difficult to specify the desired information using query parameters.
> The Redfish specification attempts to solve these issues by introducing an intermediate resource that contains the original collection as a Members collection. The intermediate resource is then referenced via a NavigationProperty with AutoExpandReferences.  The new resource is required to return $count as a metadata property of the Members collection.  The value is the size of the original collection.
> For the most part, this is successful, but the solution creates several new problems.
> 1)	Redfish specifies that a POST to the intermediate resource is equivalent to doing a POST to the contained collection.  This is not conformant.
> 2)	Introduction of many intermediate resources makes the resulting model more complex.

This message was sent by Atlassian JIRA

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