解读 API 响应
每个 API 请求都会生成一个回复客户端的响应。应检查响应以确定其是否成功并根据需要检索其他数据。
HTTP 状态代码
ONTAP REST API 使用的 HTTP 状态代码如下所述。
代码 | 含义 | Description(描述) |
---|---|---|
200 | 确定 | 表示不创建新对象的调用成功。 |
201 | 已创建 | 已成功创建对象。响应中的位置标头包括对象的唯一标识。 |
202 | 已接受 | 后台作业已开始执行请求,但尚未完成。 |
400 | 错误请求 | 请求输入无法识别或不合适。 |
401 | 未经授权 | 用户认证失败。 |
403 | 被禁止 | 由于授权(RBAC)错误,访问被拒绝。 |
404 | 未找到 | 请求中引用的资源不存在。 |
405 | 不允许的方法 | 资源不支持请求中的 HTTP 方法。 |
409 | 冲突 | 尝试创建对象失败,因为必须先创建另一个对象,或者所请求的对象已存在。 |
500 | 内部错误 | 服务器上发生了一般内部错误。 |
响应标头
ONTAP 生成的 HTTP 响应中包含多个标头。
- 位置
创建对象时,位置标头包含新对象的完整 URL,其中包括分配给对象的唯一标识。
- 内容类型
- 这通常为 application/hal+json。
响应正文
API 请求产生的响应正文的内容根据对象、处理类型以及请求的成功或失败状态而不同。响应始终以 JSON 格式呈现。
单个对象
可以根据请求返回包含一组字段的单个对象。例如,可以使用 GET 根据唯一标识来检索集群的选定属性。
多个对象
可以返回资源集合中的多个对象。在所有情况下都会使用一致的格式,其中,num_records 表示记录的数量,records 包含一组对象实例。例如,可以检索特定集群中定义的节点。
作业对象
如果 API 调用以异步方式处理,则会返回一个用于锚定后台任务的作业对象。例如,用于更新集群配置的 PATCH 请求将以异步方式处理,并返回一个作业对象。
错误对象
如果发生错误,则始终返回错误对象。例如,尝试更改未为集群定义的字段时,将收到错误。
空对象
在某些情况下,不会返回任何数据,响应正文包含空的 JSON 对象。
HAL 链接
ONTAP REST API 使用 HAL 作为支持“超媒体作为应用程序状态的引擎”(HATEOAS)的机制。当返回一个标识特定资源的对象或属性时,也会包括 HAL 编码链接,可用于轻松找到并确定有关该资源的其他详细信息。
错误
如果发生错误,则会在响应正文中返回错误对象。
- 格式
- 错误对象具有以下格式:
"error": {
"message": "<string>",
"code": <integer>[,
"target": "<string>"]
} - 常见错误代码
- 常见错误代码如下表中所述。具体的 API 调用可能包含其他错误代码。
错误代码 | HTTP 状态代码 | Description(描述) |
---|---|---|
1 | 409 | 已存在具有相同标识的对象。 |
2 | 400 | 字段的值无效或缺失,或者提供了额外的字段。 |
3 | 400 | 不支持该操作。 |
4 | 405 | 无法找到具有指定标识的对象。 |
6 | 403 | 执行请求的权限被拒绝。 |
8 | 409 | 资源正在使用中。 |
提供反馈