7.4.5. sub-Collection relationships
子集合关系定义资源和子集合之间的分层链接。子集合存在,或者在父资源上下文中有一些含义。例如,虚拟机包含网络接口,这意味着 API 映射虚拟机资源和网络接口子集合之间的关系。
子集合用于对以下关系类型建模:
- 一个父资源可以包含多个子资源,反之亦然。例如,虚拟机可以包含多个磁盘,一些磁盘由多个虚拟机共享。
- 映射的资源依赖于父资源。如果没有父资源,则依赖的资源不存在。例如,虚拟机和快照之间的链接。
- 其中映射的资源独立于父资源存在,但数据仍然与关系关联。例如,集群和网络之间的链接。
API 使用
link rel=
属性定义资源和子集合之间的关系:
GET /ovirt-engine/api/collection/resource_id HTTP/1.1 Accept: application/xml HTTP/1.1 200 OK Content-Type: application/xml <resource id="resource_id" href="/ovirt-engine/api/collection/resource_id"> ... <link rel="subcollection" href="/ovirt-engine/api/collection/resource_id/subcollection"/> ... </resource>
API 用户现在查询 sub-collection。
GET /ovirt-engine/api/collection/resource_id/subcollection HTTP/1.1 Accept: application/xml HTTP/1.1 200 OK Content-Type: application/xml <subcollection> <subresource id="subresource_id" href="/ovirt-engine/api/collection/resource_id/subcollection/subresource_id"> ... </subresource> ... </subcollection>