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>