跳到主要内容

Redfish API 通用说明

1 命令格式说明

1.1 命令组成

Redfish 命令由请求动作和 URI 两部分组成。通用请求动作如下:

请求动作含义
GET获取或查询资源。
POST创建资源或提交操作。
PATCH更新或修改已有设置。
DELETE删除资源。

具体接口是否支持某种请求动作,以对应接口的说明为准。

1.2 URI 格式

设备使用的 URI 通常为:

https://<device-ip>/redfish/v1/<path>

URI 由以下三部分组成:

部分示例说明
URI 地址https://<device-ip><device-ip> 为待访问服务器的 HDM IPv4 或 IPv6 地址。
服务和版本/redfish/v1/当前设备 Redfish 服务使用 redfish v1 版本。
资源路径<path>要访问的唯一资源路径。

文档中的花括号表示动态参数,调用时必须替换为实际值。例如:

/redfish/v1/Systems/{SystemId}

应将 {SystemId} 替换为设备返回的实际系统标识。例如,当前设备的系统资源合集可能返回 bmcsub01 等标识,对应的访问路径如下:

/redfish/v1/Systems/bmc
/redfish/v1/Systems/sub01

bmcsub01 仅为当前设备的示例值,实际标识应以 /redfish/v1/Systems 响应中的 Members[].@odata.id 为准。URI、属性名和枚举值区分大小写。

部分请求还需要请求参数。请求参数由请求头和请求体组成,具体内容以对应接口说明为准;其中路径参数应替换为接口响应中返回的实际标识。

2 OData 属性说明

Redfish 输出信息使用 OData 属性描述资源的访问地址、类型和上下文等信息。

属性说明
@odata.context描述资源上下文的 URL。
@odata.id资源的唯一标识符,也是访问当前资源或关联资源的 URI。
@odata.type指定资源类型的绝对 URL 或资源类型描述。

示例:

{
"@odata.context": "/redfish/v1/$metadata#ServiceRoot.ServiceRoot",
"@odata.id": "/redfish/v1/",
"@odata.type": "#ServiceRoot.v1_1_1.ServiceRoot"
}

资源是否包含其他属性取决于资源类型和设备能力。客户端应以实际响应和对应资源定义为准,不要假设所有资源都包含相同字段。

3 状态码说明

状态码说明
200请求成功。
201创建成功。
202创建任务执行成功。对于异步操作,还应根据响应中的任务信息查询任务状态。
204请求成功,无内容返回。客户端不要尝试解析 JSON 响应体。
400请求非法,客户端侧发生错误并返回错误消息。
401无效的用户请求,通常表示认证信息无效或缺失。
403服务端拒绝请求,通常表示当前用户没有执行该操作的权限。
404请求访问的资源不存在。
405不支持的操作。
409请求资源的状态之间存在冲突。
412先决条件检查失败,例如 OData-VersionIf-Match 检查失败。
500服务端内部错误。
501所请求的功能当前尚未实现。

客户端应同时检查 HTTP 状态码和响应体中的业务信息。对于异步操作,收到 202 后应根据响应返回的任务 URI 查询任务执行结果;发生错误时,应优先读取 Redfish 错误消息中的详细信息。

4 其它说明

特殊值说明
N/A表示字段值无法获取,或无法确认结果。
NULL表示字段值不支持,获取为空。

这些值与 JSON 的 null 不一定等价。客户端应根据字段定义和具体接口说明进行处理。