请求服务 API 错误代码

Microsoft Entra 已验证 ID 包括请求服务 REST API,可用于颁发和验证凭据。 本文指定请求服务 API 的错误代码。

Error 对象

在公共预览期间,请求服务 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 日期 错误的时间。
mscv 字符串 内部Microsoft代码。
error 错误 外部错误对象

错误类型

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

财产 类型 描述
code 字符串 与 HTTP 状态代码匹配的返回错误代码。
message 字符串 也依赖于返回的 HTTP 状态代码的标准化错误消息。
innererror Innererror 提供有关导致错误的原因的详细信息。

错误代码和消息

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

HTTP 状态代码 法典 消息
400 badRequest 请求无效。
401 未经 授权 请求的资源需要身份验证
403 禁止 缺少满足此请求的权限。
404 notFound 请求的资源不存在。
405 methodNotAllowed 请求的资源上不允许使用请求的方法。
406 notAcceptable 不支持请求的响应格式。
408 requestTimeout 请求超时。
409 冲突 由于服务器冲突,服务器无法满足请求。
410 请求的资源不再可用。
411 contentLengthRequired 缺少 Content-Length 标头。
412 preconditionFailed 此请求的先决条件失败。
413 payloadTooLarge 有效负载太大。
414 uriTooLong URI 太长。
415 unsupportedMediaType 不支持指定的媒体类型。
416 rangeNotSatisfiable 无法满足所请求的数据范围。
417 expectationFailed 无法满足预期标头。
421 misdirectedRequest 无法为此请求生成响应。
422 unprocessableEntity 请求包含语义错误。
423 源或目标资源已锁定。
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 对于 JSON Web 令牌(JWT)等令牌上出现的任何验证问题,返回这些验证问题。 target 字段包含导致问题的令牌名称(如果适用)。
transientError 如果客户端在以后的阶段重试请求,则返回给客户端可能能够获取成功响应的所有情况。 返回此代码的常见示例是返回 HTTP 429 代码

后续步骤