バッチリクエスト
メソッドによってはバッチリクエストが有効です。バッチリクエストによって一回のリクエストで複数の操作をすることができます。例えば、1,000名分の情報のアップデートをする際にはバッチリクエストにとって一括処理をすることができます。バッチリクエストはバックグラウンドで実行され、バッチリクエストのステータスを確認するためにAPIを周期的にクエリし、さらに作業が完了した際に結果を確認するためにAPIにクエリします。
各メソッドの説明に、バッチリクエストが有効かどうかが記載されています。
リクエスト
URL
https://customdomain.com/api/batch/{method}
リクエスト
各メソッドのリクエストは有効なリクエストによって構成されたArrayで送信します。以下は/api/batch/user.update
の有効なリクエストの例です。
[
{
"user_id": "wLQPaRVUME7f",
"first_name": "太郎"
},
{
"user_id": "qwIHFEihqw15",
"last_name": "山田",
"language": "ja"
}
]
レスポンス
リクエストの送信が正常に完了するとレスポンスでバッチリクエストのIDが返されます。このIDはバッチリクエストのステータスを確認するためのクエリを実行するために使用されます。
{
"status": "success",
"data": {
"batch_id": "agDjGj24Gdjk"
}
}
ステータス
URL
https://customdomain.com/api/batch.status
Arguments
Argument | 必須 | 説明 |
---|---|---|
batch_id | 必須 | バッチリクエストを送信した後に返されるID |
リクエスト
{
"batch_id": "agDjGj24Gdjk"
}
レスポンス
1つのバッチリクエストには3つのステータスがあります。
Pending
バッチリクエスト開始前
{
"status": "success",
"data": {
"status": "pending"
}
}
Started
バッチリクエスト実行中
{
"status": "success",
"data": {
"status": "started",
"started_at": "2019-11-13T10:00:41.188Z",
"total": 300,
"success": 297,
"error": 2
}
}
Finished
バッチリクエストが完了し、/api/batch.result
によって結果をクエリすることができます。
{
"status": "success",
"data": {
"status": "finished",
"finished_at": "2019-11-13T10:00:41.188Z",
"total": 300,
"success": 298,
"error": 2
}
}
エラー
コード | 説明 |
---|---|
batch_not_found | 指定されたIDでバッチリクエストが見つかりません。 |
結果
URL
https://customdomain.com/api/batch.result
Arguments
Argument | 必須 | 説明 |
---|---|---|
batch_id | 必須 | 完了したバッチリクエストのID |
リクエスト
{
"batch_id": "agDjGj24Gdjk"
}
レスポンス
各リクエストの結果は、リクエストが受け取られた順にリストに含まれます。例えばuser.create
のバッチリクエストの結果は以下のようになります。
{
"status": "success",
"data": [
{
"status": "success",
"data": { "user_id": "wLQPaRVUME7f" }
},
{
"status": "error",
"error": "login_id_exists"
},
{
"status": "success",
"data": { "user_id": "FqhqHF24Ghks" }
}
]
}
レスポンスの結果のサイズはバッチリクエストのサイズによって非常に大きくなることがあります。
エラー
コード | 説明 |
---|---|
batch_not_found | 指定されたIDでバッチリクエストが見つかりません。 |
batch_not_finished | バッチリクエストはまだ完了していません。 |
制限
ペイロード制限
バッチリクエストは通常のリクエストに比べ、リクエストのbodyの長さにおいてより高い上限が設定されています。もしバッチリクエストのペイロードが5MBを超えている場合、以下のレスポンスと共に、400 Bad Request
が返されます。
{
"status": "error",
"error": "payload_limit_exceeded"
}
Pending制限
5つを超えるバッチリクエストのステータスがpendingとなった場合、以下のレスポンスと共に、400 Bad Request
が返されます。
{
"status": "error",
"error": "pending_limit_exceeded"
}
この場合、次のバッチリクエストを送信する前に、少なくとも1つのpendingステータスのバッチリクエストが完了するまでお待ちください。