[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:all-tabpanel ] Ralf Handl updated ODATA-1064: ------------------------------ Proposal: ---------------- Add new IncludeCount term: ---------------- <Term Name="IncludeCount" AppliesTo="Collection" Type="Edm.Boolean"> <Annotation Term="Core.Description" String="If true, the @odata.count annotation will be returned in responses for the annotated collection" /> </Term> ========= Add new option to Accept header for application/json with metadata=minimal -------------------- To odata-json-format, add clause 3.1.x 3.1.x metadata=minimal+navigationLink (odata.metadata=minimal+navigationLink) The metadata=minimal+navigationLink format parameter indicates that the service MUST respond as specified for metadata=minimal with the exception that for each EntitySet or collection NavigationProperty, the initial response payload MUST include • navigationLink: The navigation link to the collection. -------------------- Example: ------------------ Proposed schema <EntityType Name="Top"> … <NavigationProperty Name="Systems" Type="Collection(ComputerSystem)"> <Annotation Term="OData.IncludeCount" Bool="true"/> </NavigationProperty> … ---------- Example: GET GET /redfish/v1/Top Accept: application/json; metadata=minimal+navigationLink Response { "@odata.context": "/redfish/v1/$metadata#Top", "@odata.id": "/redfish/v1/Top", "@odata.type": "#Top ", "Name": "Top", … "Systems@odata.count": 15, "Systems@odata.navigationLink": {"/redfish/v1/Systems"} … } was: ---------------- Add new IncludeCount term: ---------------- <Term Name="IncludeCount" AppliesTo="Collection" Type="Edm.Binary"> <Annotation Term="Core.Description" String="If true, the @odata.count annotation shall be returned for each collection in a response." /> </Term> ========= Add new option to Accept header for application/json with metadata=minimal -------------------- To odata-json-format, add clause 3.1.x 3.1.x metadata=minimal+navigationLink (odata.metadata=minimal+navigationLink) The metadata=minimal+navigationLink format parameter indicates that the service MUST respond as specified for metadata=minimal with the exception that for each EntitySet or collection NavigationProperty, the initial response payload MUST include • navigationLink: The navigation link to the collection. -------------------- Example: ------------------ Proposed schema <EntityType Name="Top"> … <NavigationProperty Name="Systems" Type="Collection(ComputerSystem)"> <Annotation Term="OData.IncludeCount" Bool="true"/> </NavigationProperty> … ---------- Example: GET GET /redfish/v1/Top Accept: application/json; metadata=minimal+navigationLink Response { "@odata.context": "/redfish/v1/$metadata#Top", "@odata.id": "/redfish/v1/Top", "@odata.type": "#Top ", "Name": "Top", … "Systems@odata.count": 15, "Systems@odata.navigationLink": {"/redfish/v1/Systems"} … } > 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 > Reporter: George Ericson > Assignee: George Ericson > Labels: Proposed, request_tc_discussion > Fix For: V4.01_CS02, V4.0_ERRATA04 > > > 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 (v6.2.2#6258)
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]