Skip to main content
ONTAP Select
本产品推出了新版本。
简体中文版经机器翻译而成,仅供参考。如与英语版出现任何冲突,应以英语版为准。

ONTAP Select 的请求和响应 API 事务

每个 Deploy API 调用都作为对 Deploy 虚拟机的 HTTP 请求执行,该虚拟机生成对客户端的关联响应。此请求/响应对被视为 API 事务。在使用 Deploy API 之前,您应该熟悉可用于控制请求的输入变量和响应输出的内容。

控制 API 请求的输入变量

您可以通过在 HTTP 请求中设置的参数来控制如何处理 API 调用。

请求标头

您必须在 HTTP 请求中包含多个标头,包括:

  • content-type 如果请求正文包含 JSON,则必须将此标头设置为 application/json。

  • accept 如果响应正文将包含 JSON,则必须将此标头设置为 application/json。

  • authorization 必须使用 base64 字符串编码的用户名和密码设置基本身份验证。

请求正文

请求正文的内容因特定调用而异。HTTP 请求正文由以下内容之一组成:

  • 具有输入变量的 JSON 对象(例如,新集群的名称)

筛选对象

在发布使用 GET 的 API 调用时,可以根据任何属性来限制或筛选返回的对象。例如,您可以指定要匹配的确切值:

<field>=<query value>

除了精确匹配之外,还有其他运算符可用于返回一系列值范围内的一组对象。ONTAP Select 支持以下所示的过滤运算符。

运算符 问题描述

=

等于

<

小于

>

大于

小于或等于

>=

大于或等于

!

不等于

*

贪婪通配符

您还可以使用 null 关键字或其否定(!null)作为查询的一部分,根据是否设置特定字段来返回一组对象。

选择对象字段

默认情况下,使用 GET 发出 API 调用仅返回唯一标识对象的属性。此最小字段集充当每个对象的键,并根据对象类型而变化。可以通过以下方式使用 fields 查询参数选择其他对象属性:

  • 廉价字段 指定 `fields=*`检索维护在本地服务器内存中或需要很少处理才能访问的对象字段。

  • 昂贵字段 指定 `fields=**`检索所有对象字段,包括需要额外服务器处理才能访问的字段。

  • 自定义字段选择 使用 `fields=FIELDNAME`指定所需的确切字段。请求多个字段时,必须使用不带空格的逗号分隔值。

提示 作为最佳做法,您应始终确定所需的特定字段。您只应在需要时检索一组便宜或昂贵的字段。便宜和昂贵的分类由 NetApp 根据内部性能分析确定。给定字段的分类可以随时更改。

对输出集中的对象进行排序

资源集合中的记录按对象定义的默认顺序返回。您可以使用 order_by 查询参数以及字段名称和排序方向更改顺序,如下所示:
order_by=<field name> asc|desc

例如,您可以按降序对类型字段进行排序,然后按升序对 id 进行排序:
order_by=type desc, id asc

当包含多个参数时,必须使用逗号分隔字段。

分页

使用 GET 发出 API 调用以访问相同类型的对象集合时,默认情况下会返回所有匹配的对象。如果需要,您可以使用带有请求的 max_records 查询参数来限制返回的记录数。例如:
max_records=20

如果需要,您可以将此参数与其他查询参数相结合,以缩小结果集。例如,以下内容最多返回在指定时间之后生成的 10 个系统事件:
time⇒ 2019-04-04T15:41:29.140265Z&max_records=10

您可以发出多个请求来浏览事件(或任何对象类型)。每个后续 API 调用应根据最后结果集中的最新事件使用新的时间值。

解释 API 响应

每个 API 请求都会生成一个回复给客户端的响应。您可以检查响应以确定它是否成功,并根据需要检索其他数据。

HTTP 状态代码

下面介绍 Deploy REST API 使用的 HTTP 状态代码。

代码 含义 问题描述

200

确定

表示未创建新对象的调用成功。

201

已创建

已成功创建对象;位置响应标头包括此对象的唯一标识符。

202

已接受

已启动长时间运行的后台作业以执行请求,但操作尚未完成。

400

错误请求

请求输入无法识别或不合适。

403

禁止

由于授权错误,访问被拒绝。

404

未找到

此请求中引用的资源不存在。

405

不允许使用此方法

此资源不支持请求中的 HTTP 谓词。

409

冲突

尝试创建对象失败,因为此对象已存在。

500

内部错误

服务器出现常规内部错误。

501

未实现

URI 已知,但无法执行请求。

响应标头

Deploy 服务器生成的 HTTP 响应中包括几个标头,包括:

  • request-id 为每个成功的 API 请求分配唯一的请求标识符。

  • 位置 创建对象时,位置标头包括新对象的完整 URL,包括唯一对象标识符。

响应正文

与 API 请求相关联的响应的内容因对象、处理类型以及请求的成功或失败而异。响应正文以 JSON 呈现。

  • 单个对象 单个对象可以根据请求返回一组字段。例如,您可以使用 GET 来使用唯一标识符检索集群的选定属性。

  • 多个对象 可以从资源集合中返回多个对象。在所有情况下,都使用一致的格式, num_records 指示记录数量,records 包含对象实例数组。例如,您可以检索特定集群中定义的所有节点。

  • Job 对象如果异步处理 API 调用,则返回一个 Job 对象,该对象锚定后台任务。例如,用于部署集群的 POST 请求是异步处理的,并返回 Job 对象。

  • Error 对象如果发生错误,则始终返回 Error 对象。例如,当您尝试使用已存在的名称创建集群时,您将收到一个错误。

  • 空 在某些情况下,不会返回任何数据,并且响应正文为空。例如,使用 DELETE 删除现有主机后,响应正文为空。