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:
- Użyj
https://merchantapi.googleapis.com/batch/{sub-api}/v1beta
jako podstawy Adres URL. Określ granicę, aby oddzielić każde zagnieżdżone żądanie, na przykład:
-H 'Content-Type: multipart/mixed,boundary=batch_inventory' \
Oddziel każde zagnieżdżone żądanie granicą, na przykład
--batch_inventory
Uwzględnij
Content-Type: application/http
na początku każdego zagnieżdżonego użytkownika.(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>
.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ą.
Nie podawaj podstawowego adresu URL w poszczególnych zagnieżdżonych żądaniach.
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--
'