バッチ リクエストを使用できます。 Merchant API を使用して、1 回の API 呼び出しで複数のリクエストを送信できます。
バッチ リクエストは、複数の API 呼び出しを含む単一の標準 HTTP リクエストで、
multipart/mixed
コンテンツ タイプを使用します。メインの HTTP リクエスト内には、
ネストされた HTTP リクエストが含まれています。
指定された API の batchPath
にバッチ リクエストを送信できます。「
Merchant API ベータ版の batchPath
は batch/{sub-api}/v1beta
です。詳しくは、
他の API の batchPath
が検出
ドキュメントをご覧ください。
リクエストをバッチ処理するタイミングの例を以下に示します。
- API を使い始めたばかりで、アップロードするデータが大量にあります。
- アプリケーションがオフラインのときにユーザーがデータに変更を加えたため、 ローカルデータをサーバーと同期する必要があります。
HTTP バッチ処理についてご不明な点がある場合、またはこの機能をリクエストしたい場合は、 クライアントとのバッチ リクエストを ライブラリ、submit フィードバック。
バッチ リクエストを作成する
次に、Merchant API のバッチ リクエストの例を示します。このリクエストは、GET リクエストを結合し、 地域別の在庫を取得するリクエストと、 同じ商品のローカル在庫を更新する。
例の形式に正確に従う必要があります。
https://merchantapi.googleapis.com/batch/{sub-api}/v1beta
をベースとして使用する URL を入力します。ネストされた各リクエストを区切る境界を指定します。次に例を示します。
-H 'Content-Type: multipart/mixed,boundary=batch_inventory' \
ネストされた各リクエストを境界で区切る(例:
--batch_inventory
。ネストされた各要素の先頭に
Content-Type: application/http
を含める リクエストできます。(省略可)
Content-ID
を使用して、ネストされた各リクエストに独自の ID にラベルを付けます。 例:Content-ID: <get:online:en:US:123456>
。ネストされた各ヘッダー、パス、本文の間に空白行を挿入する リクエストできます。ネストされたリクエストに本文がない場合は、空白行のままにします。 予測します。
個々のネストされたリクエストにベース URL を含めないでください。
次のような最終的な境界でメイン リクエストを終了します。
--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--
'