上一主题: HTTP 状态代码下一主题: URL 构建


错误

当客户端从 BFC API 接收到 400 或 5XX 错误时,生成的负载包含 driver_fault 记录。 driver_fault 记录包括以下字段:

字段

内容

注释

type

内容为客户端|驱动程序|依存关系的 string()

指明出错是由于客户端请求所致,还是驱动程序的内部原因,亦或是源自依存关系(在这种情况下,将在原因字段中传递其他信息,例如,在依存关系中生成的嵌套 driver_faults)。

subtype

内容为缺失|冲突|意外的 string()

指定调用是尝试针对缺失的资源进行操作,还是导致了 BFC 的内部冲突(例如,创建或更新可能产生重复的条目),亦或是意外调用(默认情况)。

由 BFCAPI 用于确保返回正确的 HTTP 响应代码。 例如,缺失子类型生成 404 HTTP 状态代码,而冲突生成 403 状态代码。

code

string() 完全限定的 <tenant>/<component_name>.<fault>。

例如:bbc/grid_service.fault_required_field、bbc/grid_service.fault_runtime_error。

fmt

带有引用参数的 {integer()} 的 string()。

例如:“无效网格名称 {0}”。 将用 args 字段的第一项替换 {0}。

args

包含 [number()|string()|string()] 的列表

这些与 fmt 组合(通过替换)以创建错误消息。

path

[integer()]

代表指向问题所在的函数参数列表的路径。 如果第三个参数的第二个值出错,则路径为 [2,1]。 值从 0 开始,将元组参数视为列表,将记录视为列表并在路径中排除第一个参数(记录的名称)。

function

内容为所调用函数的名称(及参数数量)的 string()。

例如:“createGrid/4”。 此示例表示已调用包含四个参数的 createGrid 函数。

dependency_id

integer()

发生故障的依存关系组件的组件 ID。 在 driver_fault type = dependency 指明请求正在利用其他组件或外部资源执行操作时传递。

reason

[driver_fault()]

包含任何嵌套故障错误。

details

string()

包含有关错误的更多详细信息。 例如,堆栈跟踪。

注意:保留为空时所有字段包含 JSON 值 null