第 3 章 REST API 快速入门示例


本章介绍了一个示例,它演示了 REST API 能够设置基本的 Red Hat Virtualization 环境并创建虚拟机。
除了标准先决条件外,此示例还需要以下内容:
  • A networked and configured Red Hat Virtualization Host;
  • 包含要安装的所需虚拟机操作系统的 ISO 文件。本章使用 Red Hat Enterprise Linux Server 6 进行我们的安装 ISO 示例;以及
  • Red Hat Virtualization 的 engine-iso-uploader 工具上传您选择的操作系统 ISO 文件。
本例使用 cURL 来通过客户端应用程序演示 REST 请求。请注意,任何支持 HTTP 请求的应用程序都可以替换 cURL
重要的
为简单起见,本例中的 HTTP 请求标头省略 Host:Authorization: 字段。但是,这些字段是必须的,需要特定于您的 Red Hat Virtualization Manager 安装的数据。
重要的
所有 cURL 示例包括身份验证详细信息的占位符(USER:PASS)和证书位置(CERT)。确保通过 cURL 执行的所有请求均满足认证和身份验证要求。
备注
Red Hat Virtualization Manager 为每个资源的 id 属性生成全局唯一标识符(GUID)。本例中的标识符代码可能与 Red Hat Virtualization 环境中的标识符代码不同。

3.1. 示例:访问 API 条目点

以下请求检索 API 版本 3 的主入口点的表示。

例 3.1. 访问 API v3 入口点

Request (带有标头):

GET /ovirt-engine/api HTTP/1.1
Version: 3
Accept: application/xml

请求(不带标头):

GET /ovirt-engine/api/v3 HTTP/1.1
Accept: application/xml

curl 命令:

# curl -X GET -H "Accept: application/xml" -u [USER:PASS] \
    --cacert [CERT] https://[RHEVM Host]:443/ovirt-engine/api

结果:

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

<api>
    <link rel="capabilities" href="/ovirt-engine/api/capabilities"/>
    <link rel="clusters" href="/ovirt-engine/api/clusters"/>
    <link rel="clusters/search" href="/ovirt-engine/api/clusters?search={query}"/>
    <link rel="datacenters" href="/ovirt-engine/api/datacenters"/>
    <link rel="datacenters/search" href="/ovirt-engine/api/datacenters?search={query}"/>
    <link rel="events" href="/ovirt-engine/api/events"/>
    <link rel="events/search" href="/ovirt-engine/api/events?search={query}"/>
    <link rel="hosts" href="/ovirt-engine/api/hosts"/>
    <link rel="hosts/search" href="/ovirt-engine/api/hosts?search={query}"/>
    <link rel="networks" href="/ovirt-engine/api/networks"/>
    <link rel="roles" href="/ovirt-engine/api/roles"/>
    <link rel="storagedomains" href="/ovirt-engine/api/storagedomains"/>
    <link rel="storagedomains/search" href="/ovirt-engine/api/storagedomains?search={query}"/>
    <link rel="tags" href="/ovirt-engine/api/tags"/>
    <link rel="templates" href="/ovirt-engine/api/templates"/>
    <link rel="templates/search" href="/ovirt-engine/api/templates?search={query}"/>
    <link rel="users" href="/ovirt-engine/api/users"/>
    <link rel="groups" href="/ovirt-engine/api/groups"/>
    <link rel="domains" href="/ovirt-engine/api/domains"/>
    <link rel="vmpools" href="/ovirt-engine/api/vmpools"/>
    <link rel="vmpools/search" href="/ovirt-engine/api/vmpools?search={query}"/>
    <link rel="vms" href="/ovirt-engine/api/vms"/>
    <link rel="vms/search" href="/ovirt-engine/api/vms?search={query}"/>
    <special_objects>
        <link rel="templates/blank"
          href="/ovirt-engine/api/templates/00000000-0000-0000-0000-000000000000"/>
        <link rel="tags/root"
          href="/ovirt-engine/api/tags/00000000-0000-0000-0000-000000000000"/>
    </special_objects>
    <product_info>
        <name>Red Hat Virtualization</name>
        <vendor>Red Hat</vendor>
        <version revision="0" build="0" minor="0" major="4"/>
    </product_info>
    <summary>
        <vms>
            <total>5</total>
            <active>0</active>
        </vms>
        <hosts>
            <total>1</total>
            <active>1</active>
        </hosts>
        <users>
            <total>1</total>
            <active>1</active>
        </users>
        <storage_domains>
            <total>2</total>
            <active>2</active>
        </storage_domains>
    </summary>
</ovirt-engine/api>

重要
如果没有使用标头和 URL 前缀,服务器会自动选择版本。默认为版本 4。您可以使用 ENGINE_API_DEFAULT_VERSION 参数更改默认版本:
# echo "ENGINE_API_DEFAULT_VERSION=3" > \
  /etc/ovirt-engine/engine.conf.d/99-set-default-version.conf
# systemctl restart ovirt-engine
更改此参数会影响未明确指定版本的管理器的所有用户。
该入口点为用户提供了到虚拟化环境中的集合的链接。每个集合链接的 rel= 属性为每个链接提供一个参考点。本示例中的下一步将检查 datacenter 集合,该集合可通过 rel="datacenter" 链接获得。
入口点还包含其他数据,如 product_infospecial_objectssummary。该数据在本示例之外的章节中阐述。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.