开始使用 REST API
您可以快速开始使用适用于VMware vSphere REST API的ONTAP工具。在实时设置中对更复杂的工作流过程使用 API 之前,访问 API 可以提供一些视角。
大家好
您可以在系统上运行一个简单的命令、以便开始使用适用于VMware vSphere REST API的ONTAP工具并确认其可用性。
-
确保您的系统上提供了 Curl 实用程序。
-
适用于VMware vSphere服务器的ONTAP工具的IP地址或主机名
-
有权访问适用于VMware vSphere的ONTAP工具REST API的帐户的用户名和密码。
如果您的凭据包含特殊字符,则您需要根据所使用的 shell 以 Curl 可接受的格式设置这些凭据。例如、您可以在每个特殊字符之前插入反斜杠、也可以将整个字符打包 username:password 单引号中的字符串。
|
在命令行界面中,运行以下命令以检索插件信息:
curl -X GET -u username:password -k "https://<ip_address>/api/hosts?fields=IncludePluginInfo"
示例
curl -X GET -u admin:password -k "'https://10.225.87.97/api/hosts?fields=IncludePluginInfo"
如何访问适用于VMware vSphere REST API的ONTAP工具
您可以通过多种不同方式访问 ONTAP REST API 。
网络注意事项
您可以通过以下接口连接到 REST API :
-
集群管理 LIF
-
节点管理 LIF
-
SVM 管理 LIF
您选择使用的LIF应配置为支持HTTPS管理协议。此外、网络中的防火墙配置应允许HTTPS流量。
您应始终使用集群管理LIF。这将对所有节点上的API请求进行负载平衡、并避免节点脱机或遇到连接问题。如果您配置了多个集群管理生命周期、则在访问REST API方面、这些生命周期都是相等的。 |
控制 API 请求的输入变量
您可以通过 HTTP 请求中设置的参数和变量来控制 API 调用的处理方式。
HTTP 方法
下表显示了适用于VMware vSphere REST API的ONTAP工具支持的HTTP方法。
并非所有 HTTP 方法都可在每个 REST 端点使用。 |
HTTP 方法 | Description |
---|---|
获取 |
检索资源实例或集合上的对象属性。 |
发布 |
根据提供的输入创建新的资源实例。 |
删除 |
删除现有资源实例。 |
PUT |
修改现有资源实例。 |
请求标题
您应在 HTTP 请求中包含多个标头。
内容类型
如果请求正文包含 JSON ,则此标头应设置为 application/json 。
接受
此标题应设置为 application/json 。
Authorization
基本身份验证应使用用户名和密码进行设置、并以base64字符串进行编码。
请求正文
请求正文的内容因具体调用而异。HTTP 请求正文包含以下内容之一:
-
包含输入变量的 JSON 对象
-
空
筛选对象
发出使用 GET 的 API 调用时,您可以根据任何属性限制或筛选返回的对象。例如,您可以指定一个要匹配的精确值:
<field>=<query value>
除了精确匹配之外,还可以使用其他运算符返回一组值范围内的对象。适用于VMware vSphere REST API的ONTAP工具支持下表所示的筛选操作符。
运算符 | Description |
---|---|
= |
等于 |
< |
小于 |
> |
大于 |
< ; = |
小于或等于 |
> ; = |
大于或等于 |
更新 |
或 |
! |
不等于 |
* |
贪婪的通配符 |
此外,您还可以在查询中使用 * null* 关键字或其 nation * ! null* 来根据是否设置了特定字段返回一组对象。
未设置的任何字段通常会从匹配查询中排除。 |
请求特定对象字段
默认情况下,使用 GET 发出 API 调用时,仅返回唯一标识一个或多个对象的属性。这组最小的字段可用作每个对象的密钥,并因对象类型而异。您可以使用选择其他对象属性 fields
使用以下方式查询参数:
通用字段或标准字段
指定 * 字段 =* 以检索最常用的对象字段。这些字段通常保留在本地服务器内存中,或者几乎不需要处理即可访问。这些属性与使用带有 URL 路径密钥( UUID )的 GET 后为对象返回的属性相同。
所有字段
指定 * 字段 =* 可检索所有对象字段,包括需要额外服务器处理才能访问的字段。
自定义字段选择
使用 * 字段 =< 字段名称 >* 指定所需的确切字段。请求多个字段时、应使用逗号分隔值、不含空格。
作为最佳实践,您应始终确定所需的特定字段。您只能在需要时检索一组通用字段或所有字段。哪些字段归类为通用字段,并使用 _fields=* _ 返回,由 NetApp 根据内部性能分析确定。字段的分类可能会在未来版本中发生变化。 |
对输出集中的对象进行排序
资源收集中的记录将按对象定义的默认顺序返回。您可以使用更改顺序 order_by
带有字段名称和排序方向的查询参数、如下所示:
order_by=<field name> asc|desc
例如,您可以按降序对类型字段排序,然后按升序对 ID 排序:
order_by=type desc, id asc
-
如果指定了排序字段,但未提供方向,则这些值将按升序排序。
-
如果包含多个参数、则应使用英文逗号分隔各个字段。
检索集合中的对象时分页
在使用GET发出API调用以访问同一类型的对象集合时、适用于VMware vSphere的ONTAP工具会根据两个限制尝试返回尽可能多的对象。您可以对请求使用其他查询参数来控制其中的每个限制。特定 GET 请求达到的第一个限制将终止该请求,因此会限制返回的记录数。
如果请求在迭代所有对象之前结束,则响应将包含检索下一批记录所需的链接。 |
限制对象数量
默认情况下、适用于VMware vSphere的ONTAP工具最多会为一个GET请求返回10、000个对象。您可以使用 max_records 查询参数更改此限制。例如:
max_records=20
根据相关的时间限制以及系统中的对象总数、返回的对象数可以小于实际的最大值。
限制检索对象所用的时间
默认情况下、适用于VMware vSphere的ONTAP工具会在GET请求允许的时间内返回尽可能多的对象。默认超时为 15 秒。您可以使用 return_timeout 查询参数更改此限制。例如:
return_timeout=5
返回的对象数可以小于实际的最大值、具体取决于对象数以及系统中对象总数的相关限制。
缩小结果集的范围
如果需要,您可以将这两个参数与其他查询参数结合使用,以缩小结果集的范围。例如,以下内容最多返回在指定时间之后生成的 10 个 EMS 事件:
time⇒ 2018-04-04T15:41:29.140265Z&max_records=10
您可以通过问题描述发送多个请求来浏览各个对象。后续的每个 API 调用应根据最后一个结果集中的最新事件使用一个新的时间值。
大小属性
某些 API 调用以及某些查询参数使用的输入值为数字。您可以选择使用下表所示的后缀,而不是提供以字节为单位的整数。
后缀 | Description |
---|---|
知识库 |
KB 千字节( 1024 字节)或千字节 |
MB |
MB 兆字节( KB x 1024 字节)或兆字节 |
GB |
GB 千兆字节( MB x 1024 字节)或吉字节 |
TB |
TB TB TB TB TB ( GB x 1024 字节)或 TB |
PB |
PB PB PB PB ( TB x 1024 字节)或对等字节 |