メインコンテンツまでスキップ

CDR 無害化リクエスト

SHIELDEX CDR 無害化リクエストのために使用します。


Method

POST

{{url}}/v5/cdr
{{url}}/v5/cdr/
{{url}}/v5/cdr/{jobID}

Request Path Parameter

KEYOBJECTDESC
jobIDString作業ID (オプション、最大36文字)

Request Parts (multipart/form-data)

KEYOBJECTDESC
dataJSON無害化リクエストデータ
fileFile無害化対象ファイル (uploadタイプの場合必須)

Request Data JSON Structure

{
"request": {
"type": "upload"
},
"userinfo": {
"id": "string",
"department": "string",
"name": "string",
"dutyname": "string",
"sysCode": "string",
"businessCode": "string"
},
"fileinfo": {
"filename": "string"
},
"result": {
"callbackURL": "string"
}
}

Request Data Fields

KEYOBJECTREQUIREDDESC
request.typeStringYesリクエストタイプ (upload)
userinfo.idStringYesユーザーID
userinfo.departmentStringNoユーザー部署
userinfo.nameStringNoユーザー名
userinfo.dutynameStringNoユーザー職責名
userinfo.sysCodeStringNoシステムコード
userinfo.businessCodeStringNoビジネスコード
userinfo.userNumberNumberNoユーザー番号
fileinfo.filenameStringYes*ファイル名
result.callbackURLStringNoコールバックURL

Response Body (json)

KEYOBJECTDESC
codeint応答コード
msgString応答メッセージ
jobIDString作業ID

Exception Response Body (json)

KEYOBJECTDESC
codeintエラーコード
msgStringエラーメッセージ
jobIDString作業ID

Response Code

CODEMESSAGEDESC
0success成功 (SUCCESS)
1-重複リクエスト (DUPLICATION)
-1fail一般的な失敗 (FAIL)
2blockブロック (有効性検証失敗、BLOCK)
3unavailable agent serviceサービス接続失敗 (CONNECTION_FAIL)
5-APIアクセスブロック (API_ACCESS_BLOCK)

Exception Messages

CODEMESSAGEDESC
2jobID is no more than 36 charactersjobID長さ超過
2Missing required field: 'request.type', The 'request.type' object is required in the request body.必須フィールド欠落
2Missing required file: 'file', The request must include a file upload in the 'file' field.ファイル欠落 (uploadタイプ)
2Missing required field: 'fileinfo.filename', The 'fileinfo.filename' object is required in the request body.ファイル名欠落 (sharedタイプ)
2Missing required field: 'userinfo.id', The 'userinfo.id' object is required in the request body.ユーザーID欠落
2Request body is missing or empty. A valid JSON body is required.リクエストボディ欠落

Sample

REQUEST - Upload Type

curl -X POST "{{url}}/v5/cdr" \
-H "Content-Type: multipart/form-data" \
-F 'data={
"FI_IDX": "test-job-001",
"request": {
"type": "upload"
},
"userinfo": {
"id": "user001",
"name": "山田太郎",
"department": "開発チーム",
"dutyname": "開発者",
"sysCode": "SYS001",
"businessCode": "BIZ001"
},
"fileinfo": {
"filename": "test.pdf"
},
"result": {
"callbackURL": "https://your-callback-url.com/callback"
}
};type=application/json' \
-F "file=@/path/to/test.pdf"

RESPONSE - Success

{
"code": 0,
"msg": "success",
"jobID": "test-job-001"
}

RESPONSE - Service Connection Fail

{
"code": 3,
"msg": "unavailable agent service",
"jobID": "test-job-001"
}

RESPONSE - Validation Error

{
"code": 2,
"msg": "Missing required field: 'request.type', The 'request.type' object is required in the request body.",
"jobID": "test-job-001"
}

RESPONSE - File Missing Error

{
"code": 2,
"msg": "Missing required file: 'file', The request must include a file upload in the 'file' field.",
"jobID": "test-job-001"
}

Processing Flow


Important Notes

  • Field Mapping: JSONフィールド名とJavaオブジェクトのフィールド名が異なる場合があります (@JsonProperty, @JsonAlias使用).
  • Response Codes: V5CdrCode enumに定義されたコード値を使用します (SUCCESS=0, DUPLICATION=1, FAIL=-1, BLOCK=2, CONNECTION_FAIL=3, API_ACCESS_BLOCK=5).
  • Validation Options: optionProperties.isUseValidate() 設定に応じて有効性検証レベルが異なります.
  • Default Values: 有効性検証を使用しない場合、一部フィールドにデフォルト値が自動設定されます.
  • File Parameters: file または files パラメータ両方使用可能で、multipartFile = multipartFile == null ? files : multipartFile ロジックが適用されます.
  • Tenant: 基本テナントは main(TenantConstant.TENANT_MAIN) で、ユーザー別テナント設定が可能です.
  • Access Control: リクエストヘッダーの sysCodebusinessCode を通じてアクセス制御が実行されます.
  • Callback: コールバックURLは result.callbackURL フィールドに設定し、無害化完了後結果を受信できます.
  • Error Handling: すべての例外は exceptionHandlerService.exceptionHandling() メソッドを通じて処理され、ログ理由コード900020が使用されます.
  • JSON Aliases: userinfo, fileinfoフィールドはuserInfo, fileInfoとしても許可されます (@JsonAlias使用).
  • Job ID Length: 最大36文字まで許可され、超過時は有効性検証失敗として処理されます.