7.4.5. サブコレクション関係
サブコレクション関係は、リソースとサブコレクション間の階層リンクを定義します。サブコレクションが存在するか、親リソースのコンテキストに何らかの意味があります。たとえば、仮想マシンにはネットワークインターフェイスが含まれているので、API は仮想マシンリソースとネットワークインターフェイスサブコレクション間の関係をマッピングします。
サブコレクションは、以下の関係タイプをモデル化するために使用されます。
- 1 つの親リソースに複数の子リソースを含めることができ、その逆も同様です。たとえば、仮想マシンには複数のディスクを含めることができ、一部のディスクは複数の仮想マシン間で共有されます。
- マッピングされたリソースは親リソースに依存します。親リソースがないと、依存するリソースは存在できません。たとえば、仮想マシンとスナップショット間のリンクなどです。
- マッピングされたリソースは親リソースとは独立して存在しますが、データは関係と関連付けられています。たとえば、クラスターとネットワーク間のリンクなどです。
API は、
リンク 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 ユーザーは、サブコレクションをクエリーするようになりました。
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>