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>