搜索

3.8. 以下链接

download PDF

API 返回对相关对象的引用作为链接。例如,当检索虚拟机时,它包含到其磁盘附加和网络接口卡的链接:

<vm id="123" href="/ovirt-engine/api/vms/123">
  ...
  <link rel="diskattachments" href="/ovirt-engine/api/vms/123/diskattachments"/>
  <link rel="nics" href="/ovirt-engine/api/vms/123/nics"/>
  ...
</vm>

这些链接对象的完整描述可通过发送单独的请求来检索

GET /ovirt-engine/api/vms/123/diskattachments
GET /ovirt-engine/api/vms/123/nics

但在某些情况下,使用 API 检索同一请求中链接的信息更为方便。例如,当额外的网络往返会带来不便的开销时,或者当多个请求以不接受的方式使应用代码变得复杂时,这很有用。对于这些用例,API 提供了一个 以下参数,它允许应用仅使用一个请求来检索链接的信息。

以下 参数的值 是由逗号分隔的字符串列表。这些字符串各自是链接的对象的路径。例如,要检索磁盘附件和上例中的 NIC,请求应类似如下:

GET /ovirt-engine/api/vms/123?follow=disk_attachments,nics

这将返回类似如下的响应:

<vm id="123" href="/ovirt-engine/api/vms/123">
  ...
  <disk_attachments>
    <disk_attachment id="456" href="/ovirt-engine/api/vms/123/diskattachments/456">
      <active>true</active>
      <bootable>true</bootable>
      <interface>virtio_scsi</interface>
      <pass_discard>false</pass_discard>
      <read_only>false</read_only>
      <uses_scsi_reservation>false</uses_scsi_reservation>
      <disk id="789" href="/ovirt-engine/api/disks/789"/>
    </disk_attachment>
    ...
  </disk_attacments>
  <nics>
    <nic id="234" href="/ovirt-engine/api/vms/123/nics/234">
      <name>eth0</name>
      <interface>virtio</interface>
      <linked>true</linked>
      <mac>
        <address>00:1a:4a:16:01:00</address>
      </mac>
      <plugged>true</plugged>
    </nic>
    ...
  </nics>
  ...
</vm>

链接对象的路径可以是单个词语,如上例中所示,也可以是一系列词语(用点分隔)来请求嵌套数据。例如,上例使用 disk_attachments 来检索磁盘附加的完整描述,但每个磁盘附加包含一个指向磁盘的链接,而这并未 遵循。要追踪到磁盘的链接,可以使用以下请求:

GET /ovirt-engine/api/vms/123?follow=disk_attachments.disk

这将产生以下响应:

<vm id="123" href="/ovirt-engine/api/vms/123">
  <disk_attachments>
    <disk_attachment id="456" href="/ovirt-engine/api/vms/123/diskattachments/456">
      <active>true</active>
      <bootable>true</bootable>
      <interface>virtio_scsi</interface>
      <pass_discard>false</pass_discard>
      <read_only>false</read_only>
      <uses_scsi_reservation>false</uses_scsi_reservation>
      <disk id="789" href="/ovirt-engine/api/disks/789">
        <name>mydisk</name>
        <description>My disk</description>
        <actual_size>0</actual_size>
        <format>raw</format>
        <sparse>true</sparse>
        <status>ok</status>
        <storage_type>image</storage_type>
        <total_size>0</total_size>
        ...
      </disk>
    </disk_attachment>
    ...
  </disk_attachments>
  ...
</vm>

路径可根据需要深层进行。例如,也要获取磁盘统计信息:

GET /ovirt-engine/api/vms/123?follow=disk_attachments.disk.statistics

可以组合多个路径元素和多个路径。例如,要获取磁盘附件和网络接口卡,以及它们的统计信息:

GET /ovirt-engine/api/vms/123?follow=disk_attachments.disk.statistics,nics.statistics
重要

几乎所有检索对象的操作都支持 以下参数,但确保明确检查参考文档,因为某些操作可能不支持它,或者可能会提供有关如何使用它来获取最佳性能的建议。

重要

使用以下 参数,将开销从客户端移到服务器端。当您请求其他数据时,服务器必须获取并将其与基本数据合并。这在服务器端消耗 CPU 和内存,并且大部分情况下需要额外的数据库查询。这可能会对服务器的性能造成负面影响,特别是在大规模环境中。确保在真实的环境中测试您的应用程序,并且仅 在合理时才使用以下参数。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.