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:
- Temel URL olarak
https://merchantapi.googleapis.com/batch/{sub-api}/v1beta
kullanın. İç 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' \
İç içe yerleştirilmiş her isteği sınırla ayırın, örneğin
--batch_inventory
.İç içe yerleştirilmiş her isteğin başına
Content-Type: application/http
ekleyin.(İ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>
.İç 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.
İç içe yerleştirilmiş her isteğe temel URL'yi eklemeyin.
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--
'