Tek seferde birden fazla istek gönderme

Tek bir API çağrısında birden fazla istek göndermek için Merchant API ile toplu istekleri kullanabilirsiniz.

Toplu istek, multipart/mixed içerik türünü kullanan birden çok API çağrısı içeren tek bir standart HTTP isteğidir. Ana HTTP isteğinde, her bölümde iç içe yerleştirilmiş bir HTTP isteği bulunur.

Toplu isteği, API için belirtilen batchPath adresine gönderebilirsiniz. Merchant API beta sürümü için batchPath değeri: batch/{sub-api}/v1beta Diğer API'ler için batchPath öğesini keşif belgelerinde bulabilirsiniz.

Aşağıda, isteklerinizi gruplandırmak isteyebileceğiniz durumlara bazı örnekler verilmiştir:

  • API'yi kullanmaya yeni başladınız ve yüklemeniz gereken çok fazla veri var.
  • Bir kullanıcı, uygulamanız çevrimdışıyken verilerde değişiklik yapmıştır ve uygulamanızın yerel verileri sunucuyla senkronize etmesi gerekmektedir.

HTTP toplu işlemleri hakkında sorularınız varsa veya istemci kitaplıklarımızla toplu istek gönderme özelliğini talep etmek istiyorsanız geri bildirim gönderin.

Toplu istek yazma

Aşağıda, örnek bir Merchant API toplu isteği görebilirsiniz. Bu istek, bir ürünün bölgesel envanterini almak için alma isteği ile aynı ürünün yerel envanterini güncellemek için ekleme isteğini birleştirir.

Örneğin biçimine tam olarak uymanız gerekir:

  1. Temel URL olarak https://merchantapi.googleapis.com/batch/{sub-api}/v1beta kullanın.
  2. İç içe yerleştirilmiş her isteği ayırmak için bir sınır belirtin. Örneğin:

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

  3. İç içe yerleştirilmiş her isteği sınırla ayırın, örneğin --batch_inventory.

  4. İç içe yerleştirilmiş her isteğin başına Content-Type: application/http ekleyin.

  5. (İsteğe bağlı) İç içe yerleştirilmiş her isteği kendi kimliğinizle etiketlemek için Content-ID öğesini kullanın. Örneğin:

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

  6. İç içe yerleştirilmiş her isteğin başlığı, yolu ve gövdesi arasına boş bir satır ekleyin. İç içe yerleştirilmiş isteğin gövdesi yoksa sonraki sınırdan önce boş satır bırakın.

  7. İç içe yerleştirilmiş her isteğe temel URL'yi eklemeyin.

  8. Ana isteği, son sınırla sonlandırın (örneğin, --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--
'

Çağrılarınızı belirli bir sırada yürütmeniz gerekiyorsa bunları ayrı olarak gönderin ve sonraki isteği göndermeden önce ilk isteğin yanıtını bekleyin.

Toplu yanıtı okuma

Aşağıda, bir HTTP toplu yanıt örneği verilmiştir. Yanıtların sırası, isteklerin sıralamasıyla eşleşmeyebilir. İç içe yerleştirilmiş her yanıtın ait olduğu iç içe yerleştirilmiş isteği tanımlamak için Content-ID öğesini kullanın. Yanıtlarda, her Content-ID için response- öneki bulunur.

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