Post by fish on Dec 13, 2017 14:45:41 GMT
I see from Redfish API specification (DSP0266 v1.3.0) section 18.104.22.168 “Links Property” that Links properties are either returned as reference to single related resource or an array of references to the related resources.
I problems we can face when defining an OEM resource is that we want to reference many other resources, e.g. more than 50 or 100. This array could get very large. For resource collections, this problem is solved by that paging query options $skip $top. But from the specification I have concluded that collections should only be used for “containment” / “parent-child” relations, and not for other relations modelled via Links property. OK? So I assume that a Link property referencing a collection that includes Members reference to resources that are not child resources is not OK. Correct? Quote from specification: “For collection-valued reference properties, the value of the property shall be the array of related resource ids.”
So how should I resolve this issue with too large arrays in Links property? We are thinking about removing these references completely, as they are double direction links in this case (compare with Contains and ContainedBy in Chassis), and rely only on the other direction Link. (Using single direction links only.) In absence of the too large array of references, similar functionality (to list the related resources) could possibly be achived via more advanced query support on the other resource. But I still think it is a problem that I haven´t found any practical solution in schemas for large number of references (in "Links") from one single resource.
Any comments or suggestions from anyone?