[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 ] George Ericson updated ODATA-1064: ---------------------------------- Proposal: ---------------- Add new example to Prefer header to showing use of count and navigation links -------------------- To OData Version 4.01. Part 1: Protocol, clause 8.2.8.4 Preference include-annotations (odata.include-annotations) Add: Example 8: a Prefer header requesting that navigation links be returned in the case that the format metadata=minimal is specified in the Accept header. Prefer: include-annotations="odata.navigationLink, odata.count" Add paragraph before example 3. Regardless of the metadata format specified, annotations specified by the include-annotations preference should be added to response. -------------------- Example: ------------------ Proposed schema <EntityType Name="Top"> … <NavigationProperty Name="Systems" Type="Collection(ComputerSystem)"/> … </EntityType> ---------- Example: GET GET /redfish/v1/Top Prefer: include-annotations="odata.count, odata.navigationLink" Response Preferences-Applied: include-annotations="odata.count, odata.navigationLink" { "@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.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 Prefer header to report navigation links even when metadata=minimal -------------------- To OData Version 4.01. Part 1: Protocol, clause 8.2.8.4 Preference include-annotations (odata.include-annotations) Add: Example 8: a Prefer header requesting that navigation links be returned in the case that the format metadata=minimal is specified in the Accept header. Prefer: include-annotations="display.subject" 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]