Jednoczesne wysyłanie wielu próśb

Możesz używać żądań zbiorczych. za pomocą interfejsu Merchant API wysyła wiele żądań w jednym wywołaniu API.

Żądanie zbiorcze to pojedyncze standardowe żądanie HTTP zawierające wiele wywołań interfejsu API, za pomocą typu treści multipart/mixed. W głównym żądaniu HTTP każde zawiera zagnieżdżone żądanie HTTP.

Możesz wysłać żądanie zbiorcze dla interfejsu API pod adres batchPath. batchPath w przypadku interfejsu Merchant API w wersji beta to batch/{sub-api}/v1beta . Więcej batchPath dla innych interfejsów API w procesie odkrywania dokumenty.

Oto kilka przykładów sytuacji, w których żądania można grupować:

  • Od niedawna korzystasz z interfejsu API i masz dużo danych do przesłania.
  • użytkownik wprowadził zmiany w danych, gdy aplikacja była offline, Aplikacja musi zsynchronizować dane lokalne z serwerem.
.

Jeśli masz pytania dotyczące grupowania HTTP lub chcesz poprosić o możliwość wysyłania zbiorczych żądań za pomocą naszego klienta biblioteki, prześlij .

Pisanie żądania zbiorczego

Oto przykładowe żądanie zbiorcze interfejsu Merchant API. To żądanie łączy żądanie get aby pobrać regionalny asortyment produktu oraz przesłać żądanie wstawienia, zaktualizować lokalny asortyment tego samego produktu.

Należy postępować zgodnie z formatem podanym w przykładzie:

  1. Użyj https://merchantapi.googleapis.com/batch/{sub-api}/v1beta jako podstawy Adres URL.
  2. Określ granicę, aby oddzielić każde zagnieżdżone żądanie, na przykład:

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

  3. Oddziel każde zagnieżdżone żądanie granicą, na przykład --batch_inventory

  4. Uwzględnij Content-Type: application/http na początku każdego zagnieżdżonego użytkownika.

  5. (Opcjonalnie) Użyj właściwości Content-ID, aby oznaczyć każde zagnieżdżone żądanie własnym identyfikatorem. Na przykład:

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

  6. Między nagłówkiem, ścieżką i treścią każdego zagnieżdżonego wiersza umieść pusty wiersz użytkownika. Jeśli zagnieżdżone żądanie nie ma treści, pozostaw pusty wiersz przed kolejną granicą.

  7. Nie podawaj podstawowego adresu URL w poszczególnych zagnieżdżonych żądaniach.

  8. Zakończ główne żądanie granicą, na przykład --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--
'

Jeśli musisz wykonywać wywołania w określonej kolejności, wysyłaj je osobno Poczekaj na odpowiedź na pierwsze żądanie, zanim wyślesz kolejne.

Odczytywanie odpowiedzi zbiorczej

Oto przykład odpowiedzi zbiorczej HTTP. Odpowiedzi mogą być w takiej kolejności nie pasują do ich kolejności. Użyj Content-ID do zidentyfikowania zagnieżdżonych żądania, do którego należy każda zagnieżdżona odpowiedź. W odpowiedziach każda grupa Content-ID została oznaczona jako poprzedzony prefiksem 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--
'