Kirim beberapa permintaan sekaligus

Anda dapat menggunakan permintaan batch dengan Merchant API untuk mengirim beberapa permintaan dalam satu panggilan API.

Permintaan batch adalah satu permintaan HTTP standar yang berisi beberapa panggilan API, menggunakan jenis konten multipart/mixed. Dalam permintaan HTTP utama, masing-masing berisi permintaan HTTP bertingkat.

Anda dapat mengirim permintaan batch ke batchPath yang ditentukan untuk API. Tujuan batchPath untuk Merchant API beta adalah batch/{sub-api}/v1beta . Anda dapat menemukan batchPath untuk API lain dalam penemuannya dokumen.

Berikut beberapa contoh kapan Anda mungkin ingin mengelompokkan permintaan:

  • Anda baru saja mulai menggunakan API dan memiliki banyak data yang akan diupload.
  • Seorang pengguna mengubah data saat aplikasi Anda offline, dan aplikasi perlu menyinkronkan data lokal dengan server.

Jika ada pertanyaan tentang pengelompokan HTTP, atau jika Anda ingin meminta kemampuan untuk mengirim permintaan batch dengan klien library, kirim masukan.

Menulis permintaan batch

Berikut contoh permintaan batch Merchant API. Permintaan ini menggabungkan permintaan get untuk mengambil inventaris regional untuk produk, dan permintaan sisipkan perbarui inventaris lokal untuk produk yang sama.

Anda harus mengikuti format contoh dengan tepat:

  1. Gunakan https://merchantapi.googleapis.com/batch/{sub-api}/v1beta sebagai dasar .
  2. Tentukan batas untuk memisahkan setiap permintaan bertingkat, misalnya:

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

  3. Pisahkan setiap permintaan bertingkat dengan batas, misalnya --batch_inventory.

  4. Sertakan Content-Type: application/http di awal setiap item bertingkat permintaan.

  5. (Opsional) Gunakan Content-ID untuk memberi label setiap permintaan bertingkat dengan ID Anda sendiri. Contoh:

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

  6. Sertakan baris kosong antara header, jalur, dan isi setiap halaman permintaan. Jika permintaan bertingkat tidak memiliki isi, biarkan baris kosong sebelum {i>border<i} berikutnya.

  7. Jangan sertakan URL dasar dalam setiap permintaan bertingkat.

  8. Mengakhiri 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 Anda dalam urutan tertentu, kirim secara terpisah dan menunggu respons atas permintaan pertama sebelum mengirim permintaan berikutnya.

Membaca respons batch

Berikut adalah contoh respons batch HTTP. Urutan jawaban dapat tidak sesuai dengan urutan permintaan. Menggunakan Content-ID untuk mengidentifikasi objek bertingkat 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--
'