23.3. 关联标签

23.3.1. 为主机、用户或虚拟机附加标签

hostuservms 中的 link rel="tags" 代表了附加到它们上面的标签。
这些 tag 表述也包括了一个 host iduser idvm id 来代表附加了这个标签的主机、用户或虚拟机。
通过对某个对象的集合发送一个带有标签标识(标签 idname)的 POST 请求来为这个对象附加标签。

例 23.2. 为一个虚拟机附加标签

POST /api/vms/5114bb3e-a4e6-44b2-b783-b3eea7d84720/tags HTTP/1.1
Accept: application/xml
Content-Type: application/xml

<tag>
    <name>Finance</name>
</tag>

HTTP/1.1 201 Created
Content-Type: application/xml

<tag id="f436ebfc-67f2-41bd-8ec6-902b6f7dcb5e"
  href="/api/vms/5114bb3e-a4e6-44b2-b783-b3eea7d84720/tags/
  f436ebfc-67f2-41bd-8ec6-902b6f7dcb5e">
    <name>Finance</name>
    <description>Resources for the Finance department</description>
    <vm id="5114bb3e-a4e6-44b2-b783-b3eea7d84720"
      href="/api/vms/5114bb3e-a4e6-44b2-b783-b3eea7d84720"/>
</tag>

23.3.2. 删除标签

使用对集合中的相应项的 DELETE 请求删除和这个项相关联的标签。

例 23.3. 从虚拟机上删除标签

DELETE /api/vms/5114bb3e-a4e6-44b2-b783-b3eea7d84720/tags/f436ebfc-67f2-41bd-8ec6-902b6f7dcb5e HTTP/1.1

HTTP/1.1 204 No Content

23.3.3. 对带有标签的资源进行查询

要对附加了特定标签的资源进行查询,可以使用相应集合的 collection/search URI 模板,搜索的条件是 tag=MyTag

例 23.4. 对带有标签的资源进行查询

GET /api/vms?search=tag%3DFinance HTTP/1.1
Accept: application/xml

HTTP/1.1 200 OK
Content-Type: application/xml

<vms>
    <vm id="5114bb3e-a4e6-44b2-b783-b3eea7d84720"
      href="/api/vms/5114bb3e-a4e6-44b2-b783-b3eea7d84720">
        ...
    </vm>
    ...
</vms>