Anda dapat menggunakan permintaan batch dengan Merchant API untuk mengirim beberapa permintaan dalam satu panggilan API.
Permintaan batch adalah permintaan HTTP standar tunggal yang berisi beberapa panggilan API, menggunakan jenis konten multipart/mixed
. Dalam permintaan HTTP utama, setiap
bagian berisi permintaan HTTP bertingkat.
Anda dapat mengirim permintaan batch ke batchPath
yang ditentukan untuk API. batchPath
untuk Merchant API beta adalah batch/{sub-api}/v1beta
. Anda dapat menemukan batchPath
untuk API lain dalam dokumen penemuan.
Berikut adalah beberapa contoh saat yang tepat untuk mengelompokkan permintaan Anda:
- Anda baru saja mulai menggunakan API dan memiliki banyak data untuk diupload.
- Seorang pengguna membuat perubahan pada data saat aplikasi Anda offline, dan aplikasi Anda perlu menyinkronkan data lokal dengan server.
Jika ada pertanyaan tentang pengelompokan HTTP, atau jika Anda ingin meminta kemampuan untuk mengirim permintaan batch dengan library klien kami, kirim masukan.
Menulis permintaan batch
Berikut adalah contoh permintaan batch Merchant API. Permintaan ini menggabungkan permintaan get untuk mengambil inventaris regional untuk suatu produk, dan permintaan penyisipan untuk memperbarui inventaris lokal untuk produk yang sama.
Anda harus mengikuti format contoh dengan tepat:
- Gunakan
https://merchantapi.googleapis.com/batch/{sub-api}/v1beta
sebagai URL dasar. Tentukan batas untuk memisahkan setiap permintaan bertingkat, misalnya:
-H 'Content-Type: multipart/mixed,boundary=batch_inventory' \
Pisahkan setiap permintaan bertingkat dengan batas, misalnya
--batch_inventory
.Sertakan
Content-Type: application/http
di awal setiap permintaan bertingkat.(Opsional) Gunakan
Content-ID
untuk memberi label setiap permintaan bertingkat dengan ID Anda sendiri. Contoh:Content-ID: <get:online:en:US:123456>
.Sertakan baris kosong antara header, jalur, dan isi setiap permintaan bertingkat. Jika permintaan bertingkat tidak memiliki isi, kosongkan baris kosong sebelum batas berikutnya.
Jangan sertakan URL dasar di setiap permintaan bertingkat.
Akhiri permintaan utama dengan batas akhir, misalnya
--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--
'
Jika Anda perlu menjalankan panggilan dalam urutan tertentu, kirim panggilan secara terpisah dan tunggu respons terhadap permintaan pertama sebelum mengirimkan permintaan berikutnya.
Membaca respons batch
Berikut adalah contoh respons batch HTTP. Urutan respons mungkin
tidak sesuai dengan urutan permintaan. Gunakan Content-ID
untuk mengidentifikasi permintaan
bertingkat yang memiliki setiap respons bertingkat. Dalam respons, setiap Content-ID
diawali dengan 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--
'