[ 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",
…
"": 15,
"": {"/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",
…
"": 15,
"": {"/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)