バッチリクエスト

メソッドによってはバッチリクエストが有効です。バッチリクエストによって一回のリクエストで複数の操作をすることができます。例えば、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ステータスのバッチリクエストが完了するまでお待ちください。