请求服务 API 错误代码

注意

Microsoft Entra 验证 ID 现在是 Microsoft Entra 验证 ID 和 Microsoft Entra 产品系列的一部分。 详细了解标识解决方案 Microsoft Entra 系列,并开始使用统一 Microsoft Entra 管理中心

Microsoft Entra Verified ID 包括请求服务 REST API,它允许颁发和验证凭据。 本文指定请求服务 API 的错误代码。

错误对象

在公共预览版期间,请求服务 API 返回以下格式的错误。

{
  "requestId": "4bb6726f77af7623ab52962323016442",
  "date": "Thu, 28 Apr 2022 14:30:54 GMT",
  "mscv": "17ppwf3uxR10MfRR.1",
  "error": {
    "code": "client_request.invalid_include_qr_code",
    "message": "The request contains `includeQRCode`, but it is not boolean."
  }
}

该格式现在更改为以下格式,以实现更简单的错误处理和更好的故障排除支持。 在新的格式中,外部错误代码和消息字段具有标准化值,而 innererror 对象提供了错误原因的详细信息。

{
  "requestId": "782628eb-503a-4978-84f2-d7c634f25b15",
  "date": "Fri, 29 Apr 2022 11:20:19 GMT",
  "mscv": "QbBLwF7XAp0dt4Lw.1",
  "error": {
    "code": "badRequest",
    "message": "The request is invalid.",
    "innererror": {
      "code": "badOrMissingField",
      "message": "The request contains `includeQRCode`, but it is not boolean.",
      "target": "includeQRCode"
    }
  }
}
属性 类型 说明
requestId 字符串 自动生成的请求 ID。
date date 出错时间。
mscv string 内部 Microsoft 代码。
error 错误 外部错误对象

错误类型

error 对象现在与从 API 调用返回的 HTTP 状态代码匹配,以便开发人员更容易地处理错误。

属性 类型 说明
code 字符串 与 HTTP 状态代码匹配的返回错误代码。
message 字符串 也依赖于返回的 HTTP 状态代码的标准化错误消息。
innererror Innererror 提供错误原因的详细信息。

错误代码和消息

下面是映射到返回的不同 HTTP 状态代码的可能的顶级 code 值。

HTTP 状态代码 code message
400 badRequest 请求无效。
401 未经授权的 请求的资源需要身份验证
403 已禁止 缺少实现此请求的权限。
404 notFound 请求的资源不存在。
405 methodNotAllowed 请求的资源上不允许请求的方法。
406 notAcceptable 不支持请求的响应格式。
408 requestTimeout 请求超时。
409 冲突 由于服务器冲突,服务器无法完成请求。
410 不存在 请求的资源不再可用。
411 contentLengthRequired 缺少内容长度标头。
412 preconditionFailed 此请求的先决条件失败。
413 payloadTooLarge 有效负载太大。
414 uriTooLong URI 太长。
415 unsupportedMediaType 不支持指定的媒体类型。
416 rangeNotSatisfiable 无法满足请求的数据范围。
417 expectationFailed 无法满足 Expect 标头。
421 misdirectedRequest 无法为此请求生成响应。
422 unprocessableEntity 请求包含语义错误。
423 locked 源或目标资源已锁定。
429 tooManyRequests 请求太多,请稍后再试。
431 requestHeaderFieldsTooLarge 请求头字段太长。
500 internalServerError 服务器上发生了一般错误。
501 notImplemented 服务器不支持请求的函数。
502 badGateway 从其他网关接收到错误的响应。
503 serviceUnavailable 服务器暂不可用,请稍后重试。
504 gatewayTimeout 从其他网关接收到的超时。
507 insufficientStorage 无法保存请求的数据。

内部错误类型

内部错误对象包含特定于错误的详细信息,该详细信息有助于开发人员调查当前的失败。

{
  "requestId": "782628eb-503a-4978-84f2-d7c634f25b15",
  "date": "Fri, 29 Apr 2022 11:20:19 GMT",
  "mscv": "QbBLwF7XAp0dt4Lw.1",
  "error": {
    "code": "badRequest",
    "message": "The request is invalid.",
    "innererror": {
      "code": "badOrMissingField",
      "message": "The request contains `includeQRCode`, but it is not boolean.",
      "target": "includeQRCode"
    }
  }
}
属性 类型 说明
code 字符串 内部错误代码。 包含基于错误类型的标准化代码
message 字符串 内部错误消息。 包含错误的详细消息。 在此示例中,includeQRCode 字段的类型不正确。
target 字符串 可选。 目标包含请求中导致此错误的字段。 此字段是可选的,可能不存在,具体取决于错误类型。

内部错误代码

代码 说明
badOrMissingField 当请求发生验证问题时返回。 target 字段包含请求中导致该问题的字段。
notFound 找不到客户端请求的资源时返回。 target 字段包含找不到的资源名称/ID。
tokenError 针对 JWT 等令牌上出现的任何验证问题返回。 如果适用,target 字段包含导致问题的令牌名称。
transientError 如果客户端在后续阶段重试请求,则针对客户端可能会获得成功的响应的所有情况返回。 返回此代码时的常见示例是返回 HTTP 429 代码

后续步骤