Mehrere Anfragen gleichzeitig senden

Sie können Stapelanfragen verwenden. mit der Merchant API verwenden, um mehrere Anfragen in einem einzigen API-Aufruf zu senden.

Eine Batchanfrage ist eine einzelne Standard-HTTP-Anfrage mit mehreren API-Aufrufen. mit dem Inhaltstyp multipart/mixed. In der HTTP-Hauptanfrage part enthält eine verschachtelte HTTP-Anfrage.

Sie können die Batchanfrage an die angegebene batchPath für die API senden. Die batchPath für die Merchant API-Beta ist batch/{sub-api}/v1beta . Sie finden die batchPath für andere APIs in ihrer Erkennung Dokumente.

Hier sind einige Beispiele für Fälle, in denen Sie Anfragen in Batches zusammenfassen können:

  • Sie haben gerade angefangen, die API zu verwenden, und müssen viele Daten hochladen.
  • Ein Nutzer hat Daten geändert, während Ihre Anwendung offline war und Ihre Anwendung lokale Daten mit dem Server synchronisieren muss.

Wenn Sie Fragen zur HTTP-Batchverarbeitung haben oder um Stapelanfragen mit unserem Client Bibliotheken, senden Sie Feedback.

Batchanfrage schreiben

Hier ist ein Beispiel für eine Händler-API-Batchanfrage. Diese Anfrage kombiniert eine get-Anfrage um das regionale Inventar für ein Produkt abzurufen, und eine Einfügeanfrage, das lokale Inventar für das gleiche Produkt aktualisieren.

Halten Sie sich dabei genau an das Format des Beispiels:

  1. https://merchantapi.googleapis.com/batch/{sub-api}/v1beta als Basis verwenden URL
  2. Geben Sie eine Grenze an, um die verschachtelten Anfragen zu trennen. Beispiel:

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

  3. Trennen Sie die verschachtelten Anfragen beispielsweise durch die Begrenzung. --batch_inventory

  4. Content-Type: application/http am Anfang jedes verschachtelten Elements einfügen

  5. Optional: Verwenden Sie Content-ID, um jede verschachtelte Anfrage mit Ihrer eigenen ID zu versehen. Beispiel:

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

  6. Fügen Sie eine Leerzeile zwischen Header, Pfad und Text jeder verschachtelten Wenn die verschachtelte Anfrage keinen Text hat, lasse eine leere Zeile vor der nächsten Begrenzung.

  7. Fügen Sie die Basis-URL nicht in jede einzelne verschachtelte Anfrage ein.

  8. Beenden Sie die Hauptanfrage beispielsweise mit einer endgültigen Grenze. --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--
'

Wenn Sie die Aufrufe in einer bestimmten Reihenfolge ausführen müssen, Warten Sie auf die Antwort auf die erste Anfrage, bevor Sie die nächste senden.

Batchantwort lesen

Hier ist ein Beispiel für eine HTTP-Batchantwort. Die Reihenfolge der Antworten kann nicht mit der Reihenfolge der Anfragen übereinstimmen. Content-ID zur Identifizierung der verschachtelten -Anforderung, zu der die verschachtelte Antwort gehört. In den Antworten ist jede Content-ID response- vorangestellt ist.

--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--
'