複数のリクエストを一度に送信する

バッチ リクエストを使用できます。 Merchant API を使用して、1 回の API 呼び出しで複数のリクエストを送信できます。

バッチ リクエストは、複数の API 呼び出しを含む単一の標準 HTTP リクエストで、 multipart/mixed コンテンツ タイプを使用します。メインの HTTP リクエスト内には、 ネストされた HTTP リクエストが含まれています。

指定された API の batchPath にバッチ リクエストを送信できます。「 Merchant API ベータ版の batchPathbatch/{sub-api}/v1beta です。詳しくは、 他の API の batchPath検出 ドキュメントをご覧ください

リクエストをバッチ処理するタイミングの例を以下に示します。

  • API を使い始めたばかりで、アップロードするデータが大量にあります。
  • アプリケーションがオフラインのときにユーザーがデータに変更を加えたため、 ローカルデータをサーバーと同期する必要があります。
で確認できます。

HTTP バッチ処理についてご不明な点がある場合、またはこの機能をリクエストしたい場合は、 クライアントとのバッチ リクエストを ライブラリsubmit フィードバック

バッチ リクエストを作成する

次に、Merchant API のバッチ リクエストの例を示します。このリクエストは、GET リクエストを結合し、 地域別の在庫を取得するリクエストと、 同じ商品のローカル在庫を更新する。

例の形式に正確に従う必要があります。

  1. https://merchantapi.googleapis.com/batch/{sub-api}/v1beta をベースとして使用する URL を入力します。
  2. ネストされた各リクエストを区切る境界を指定します。次に例を示します。

    -H 'Content-Type: multipart/mixed,boundary=batch_inventory' \

  3. ネストされた各リクエストを境界で区切る(例: --batch_inventory

  4. ネストされた各要素の先頭に Content-Type: application/http を含める リクエストできます。

  5. (省略可)Content-ID を使用して、ネストされた各リクエストに独自の ID にラベルを付けます。 例:

    Content-ID: <get:online:en:US:123456>

  6. ネストされた各ヘッダー、パス、本文の間に空白行を挿入する リクエストできます。ネストされたリクエストに本文がない場合は、空白行のままにします。 予測します。

  7. 個々のネストされたリクエストにベース URL を含めないでください。

  8. 次のような最終的な境界でメイン リクエストを終了します。 --batch_inventory–

で確認できます。
curl https://merchantapi.googleapis.com/batch/inventories/v1beta \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: multipart/mixed,boundary=batch_inventory' \
--data '
--batch_inventory
Content-Type: application/http
Content-ID: <get:online:en:US:123456>

GET /inventories/v1beta/accounts/123/products/online:en:US:123456/regionalInventories

--batch_inventory
Content-Type: application/http
Content-ID: <post:online:en:US:123456>

POST /inventories/v1beta/accounts/123/products/online:en:US:123456/regionalInventories:insert

{
   "region: "123456",
    "price": {
        "amountMicros": "100000000",
        "currencyCode": "USD"
    }
}
--batch_inventory--
'

特定の順序で呼び出しを実行する必要がある場合は、呼び出しを個別に送信し、 最初のリクエストに対するレスポンスを待ってから、次のリクエストを送信します。

バッチ レスポンスを読み取る

以下に、HTTP バッチ レスポンスの例を示します。レスポンスの順序は リクエストの順序と一致しない場合がありますContent-ID を使用してネストされた それぞれのネストレスポンスが属する リクエストを指定できますレスポンスでは、各 Content-ID は、 先頭に response- が付きます。

--batch_YCE-jYH0pmDrBIHeHhltcpXIMpk0VTzQ
Content-Type: application/http
Content-ID: <response-get:online:en:US:123456>
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
Vary: Origin
Vary: X-Origin
Vary: Referer
{}
--batch_YCE-jYH0pmDrBIHeHhltcpXIMpk0VTzQ
Content-Type: application/http
Content-ID: <response-post:online:en:US:123456>
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
Vary: Origin
Vary: X-Origin
Vary: Referer
{
  "name": "accounts/123/products/online:en:US:123456/regionalInventories/123456",
  "region": "123456",
  "price": {
    "amountMicros": "100000000",
    "currencyCode": "USD"
  }
}
--batch_YCE-jYH0pmDrBIHeHhltcpXIMpk0VTzQ--
'