错误与重试
错误信封、完整的响应列表以及各自的处理方式。
信封
{ "message": "MISSING_CLIENT_ID", "details": [] }
message 标识错误,details 通常为空。当流程拒绝请求时(例如图像无效),响应保持此信封,原因写在 message 和 details 中。参见拒绝情形。
参考
| 状态 | message | 端点 | 是否重试? |
|---|---|---|---|
| 400 | INVALID_REQUEST | create | 否。请修正请求 |
| 400 | REQUEST_TOO_LARGE | create | 否。请求体超过 2 MiB |
| 400 | MISSING_<FIELD> / INVALID_<FIELD> | create | 否。<FIELD> 是大写蛇形命名的字段名,例如 MISSING_CREDENTIAL_VALUE |
| 401 | 空("") | create、selfie | 否。Unico 拒绝了访问密钥。请检查 HUMAN_API_ACCESS_KEY |
| 409 | CORRELATION_ID_ALREADY_USED | create | 否。已有其他流程使用该 correlationId。请使用新的 |
| 422 | ATTRIBUTE_TYPE_NOT_SUPPORTED | create | 否。请使用目录中的代码 |
| 4xx | 流程的 message | create | 否。该流程会被存储为失败 |
| 404 | PROCESS_NOT_FOUND | get、selfie | 否 |
| 404 | SELFIE_NOT_FOUND | selfie | 否。该流程没有可用的自拍 |
| 4xx | 拒绝的 message | selfie | 否 |
| 503 | DATABASE_UNAVAILABLE | 全部 | Create:见下文。Get 和 selfie:是 |
| 502 | UPSTREAM_UNAVAILABLE | 全部 | Create:见下文。Get 和 selfie:是 |
| 500 | INTERNAL | 全部 | Create:见下文 |
重试创建请求
每个被接受的创建请求都会启动一个带有新 id 的新流程,且每个 correlationId 只能使用一次:已被任何状态的流 程使用过的 correlationId 会以 409 CORRELATION_ID_ALREADY_USED 拒绝。
- 400、409、422 及其他拒绝: 请先修正请求再重新发送。
- 503
DATABASE_UNAVAILABLE: 未存储也未处理任何内容。请使用相同的correlationId重试。 - 502 和 500: 请求未得到确认。不要自动重试。如需再次尝试,请使用新的
correlationId发送新的创建请求。
建议您的后端采用以下做法:
- 在调用 Human Plugin 之前记录每次尝试,并以其
correlationId为键。 - 收到
502或500时,根据您的业务规则决定是否发起新的尝试。 - 在您的记录中将相关尝试关联起来。
重试读取请求
对流程或其自拍执行 GET 可以安全重试。请使用退避策略,并在收到 404 时停止。
速率限制
Human Plugin 没有内置的速率限制器。如有需要,请在您的网关处设置限制。