エラーの処理
Verify API は、何らかの理由によってリクエストを完了できなかった場合、エラーを返します。
エラーの詳細は、エラーレスポンスの details に含まれています。
エラーハンドリングの詳細は Connect プロトコルドキュメントのError Codes、Error and EndStreamResponse、各言語ランタイムのErrorsを参照してください。
Verify API が返す ErrorDetails
Verify API は、以下の ErrorDetails を返す可能性があります。
google.rpc.ErrorInfo
このメッセージは、リクエストの処理中に Verify API 固有の事由によりエラーが発生した場合に返されます。 この Protobuf メッセージの定義はgoogle.rpc.ErrorInfoを参照してください。
reason フィールドには、pocketsign.verify.v2.ErrorReasonで定義された文字列が含まれます。
この値を確認することによって、エラーの原因を切り分けることができます。
以下のエラーレスポンス例をご参照ください。
{
"code": "unavailable",
"message": "OCSP request failed. Please try again later.",
"details": [
{
"type": "google.rpc.ErrorInfo",
"value": "CiBFUlJPUl9SRUFTT05fT0NTUF9SRVFVRVNUX0ZBSUxFRBIUcG9ja2V0c2lnbi92ZXJpZnkvdjI",
"debug": {
"reason": "ERROR_REASON_OCSP_REQUEST_FAILED",
"domain": "pocketsign/verify/v2"
}
}
]
}
buf.validate.Violations
このメッセージは、リクエストのバリデーションに失敗した場合に返されます。 この Protobuf メッセージの定義はbuf.validate.Violationsを参照してください。
バリデーションの定義は、リクエストの Protobuf メッセージの定義に含まれています。
例えば、署名検証リクエスト pocketsign.verify.v2.VerificationService.Verify のリクエストメッセージである pocketsign.verify.v2.VerifyRequestの定義は、
Buf Schema Registry の Code セクションで確認することができます。
以下のエラーレスポンス例をご参照ください。
{
"code": "invalid_argument",
"message": "Provided arguments are invalid. Please refer to the documentation for more details.",
"details": [
{
"type": "buf.validate.Violations",
"value": "CkQSCHJlcXVpcmVkGhF2YWx1ZSBpcyByZXF1aXJlZCoTChEIARILY2VydGlmaWNhdGUYDDIQCg4IGRIIcmVxdWlyZWQYCA",
"debug": {
"violations": [
{
"field": {
"elements": [
{
"fieldNumber": 1,
"fieldName": "certificate",
"fieldType": "TYPE_BYTES"
}
]
},
"rule": {
"elements": [
{
"fieldNumber": 25,
"fieldName": "required",
"fieldType": "TYPE_BOOL"
}
]
},
"ruleId": "required",
"message": "value is required"
}
]
}
}
]
}