ONTAP REST API请求的输入变量
您可以通过 HTTP 请求中设置的参数和变量来控制 API 调用的处理方式。
HTTP 方法
下表显示了 ONTAP REST API 支持的 HTTP 方法。
|
并非所有 HTTP 方法都可在每个 REST 端点使用。此外,修补程序和删除都可以用于集合。有关详细信息,请参见 _Object 引用和访问权限 _ 。 |
HTTP 方法 | Description |
---|---|
获取 |
检索资源实例或集合上的对象属性。 |
发布 |
根据提供的输入创建新的资源实例。 |
patch |
根据提供的输入更新现有资源实例。 |
删除 |
删除现有资源实例。 |
标题 |
有效发出 GET 请求,但仅返回 HTTP 标头。 |
选项 |
确定特定端点支持哪些 HTTP 方法。 |
路径变量
每次REST API调用使用的端点路径可以包含各种标识符。每个ID对应于一个特定资源实例。例如、集群ID和SVM ID。
请求标题
您必须在 HTTP 请求中包含多个标头。
- 内容类型
-
如果请求正文包含 JSON ,则必须将此标头设置为
application/json
。 - 接受
-
此标头应设置为
application/hal+json
。如果将其设置为application/json
,则除了检索下一批记录所需的链接之外,不会返回任何 HAL 链接。如果标头与这两个值不同,则响应中的content-type
标头的默认值将为application/hal+json
。 - Authorization
-
必须使用用户名和密码设置基本身份验证,并将其编码为 base64 字符串。例如:
Authorization: Basic YWRtaW46cGV0ZXJzb24=
。
请求正文
请求正文的内容因具体调用而异。HTTP 请求正文包含以下内容之一:
-
包含输入变量的 JSON 对象
-
空 JSON 对象
筛选对象
使用GET方法发出API调用时、您可以使用查询参数根据任何属性限制或筛选返回的对象。
可以将一个或多个参数的集合附加到以后面开头的URL字符串中 ?
字符。如果提供了多个参数、则查询参数将根据进行拆分 &
字符。参数中的每个键和值都在中拆分 =
字符。
例如、您可以使用等号指定要匹配的确切值:
<field>=<value>
对于更复杂的查询、附加运算符放置在等号后面。例如、要根据大于或等于某个值的特定字段选择对象集、查询将为:
<field>=>=<value>
除了上面提供的示例之外、还可以使用其他运算符来返回值范围内的对象。下表汇总了ONTAP REST API支持的筛选运算符。
|
未设置的任何字段通常会从匹配查询中排除。 |
运算符 |
Description |
= |
等于 |
< |
小于 |
> |
大于 |
>= |
小于或等于 |
>= |
大于或等于 |
! |
不等于 |
* |
贪婪的通配符 |
此外,您还可以在查询中使用 null
关键字或其否定 ` ! null` 来根据是否设置了特定字段返回一组对象。
下面列出了此站点的REST API工作流中的一些示例。
-
根据进行筛选
state
用于选择备用磁盘的变量。
请求特定对象字段
默认情况下,使用 GET 发出 API 调用时,只会返回唯一标识一个或多个对象的属性以及 HAL 自链接。这组最小的字段可用作每个对象的密钥,并因对象类型而异。您可以通过以下方式使用 fields
query 参数选择其他对象属性:
-
通用字段或标准字段
指定
fields=*`
以检索最常用的对象字段。这些字段通常保留在本地服务器内存中,或者几乎不需要处理即可访问。这些属性与使用带有 URL 路径密钥( UUID )的 GET 后为对象返回的属性相同。 -
所有字段
指定
fields=*
可检索所有对象字段,包括需要额外服务器处理才能访问的字段。 -
自定义字段选择
使用
fields=<field_name>
指定所需的确切字段。请求多个字段时,必须使用逗号分隔值,不能包含空格。作为最佳实践,您应始终确定所需的特定字段。您只能在需要时检索一组通用字段或所有字段。哪些字段归类为通用字段,并使用 fields=*
返回,由 NetApp 根据内部性能分析确定。字段的分类可能会在未来版本中发生变化。
对输出集中的对象进行排序
资源收集中的记录将按对象定义的默认顺序返回。您可以使用 order_by
查询参数以及字段名称和排序方向更改顺序,如下所示:
order_by-=< 字段名称 > asc=desc
例如,您可以按降序对类型字段排序,然后按升序对 ID 排序:
order_by-type desc , id asc
请注意以下事项:
-
如果指定了排序字段,但未提供方向,则这些值将按升序排序。
-
如果包含多个参数,则必须使用逗号分隔各个字段。
检索集合中的对象时分页
使用 GET 发出 API 调用以访问同一类型的一组对象时, ONTAP 会根据两个限制尝试返回尽可能多的对象。您可以对请求使用其他查询参数来控制其中的每个限制。特定 GET 请求达到的第一个限制将终止该请求,因此会限制返回的记录数。
|
如果请求在迭代所有对象之前结束,则响应将包含检索下一批记录所需的链接。 |
- 限制对象数量
-
默认情况下, ONTAP 最多为 GET 请求返回 10 , 000 个对象。您可以使用
max_records
query 参数更改此限制。例如:max_records=20
根据相关时间限制以及系统中的对象总数,实际返回的对象数可以小于有效的最大数量。
- 限制检索对象所用的时间
-
默认情况下, ONTAP 会在获取请求允许的时间内返回尽可能多的对象。默认超时为 15 秒。您可以使用
return_timeout
query 参数更改此限制。例如: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 字节)或对等字节 |