Permintaan batch

Dokumen ini menunjukkan cara mengelompokkan panggilan API sekaligus untuk mengurangi jumlah koneksi yang harus dibuat oleh klien Anda. Batching dapat meningkatkan efisiensi aplikasi dengan mengurangi perjalanan pulang pergi jaringan dan meningkatkan throughput.

Ringkasan

Setiap koneksi yang dibuat klien Anda menghasilkan sejumlah overhead tertentu. Google Slides API mendukung pengelompokan sehingga klien Anda dapat menempatkan beberapa objek permintaan, yang masing-masing menentukan satu jenis permintaan yang akan dilakukan, ke dalam satu permintaan batch. Permintaan batch dapat meningkatkan performa dengan menggabungkan beberapa subpermintaan menjadi satu panggilan ke server, dan mengambil satu respons kembali.

Sebaiknya pengguna selalu menggabungkan beberapa permintaan. Berikut beberapa contoh situasi saat Anda dapat menggunakan pengelompokan:

  • Anda baru saja mulai menggunakan API dan memiliki banyak data untuk diupload.
  • Anda perlu memperbarui metadata atau properti, seperti pemformatan, di beberapa objek.
  • Anda perlu menghapus banyak objek.

Pertimbangan batas, otorisasi, & dependensi

Berikut daftar item lain yang perlu dipertimbangkan saat menggunakan update batch:

  • Setiap permintaan batch, termasuk semua subpermintaan, dihitung sebagai satu permintaan API terhadap batas penggunaan Anda.
  • Permintaan batch diautentikasi satu kali. Otentikasi tunggal ini berlaku untuk semua objek update batch dalam permintaan.
  • Server memproses subpermintaan dalam urutan yang sama dengan urutan kemunculannya dalam permintaan batch. Subpermintaan selanjutnya dapat bergantung pada tindakan yang dilakukan selama subpermintaan sebelumnya. Misalnya, dalam permintaan batch yang sama, pengguna dapat menyisipkan teks ke dalam dokumen yang ada, lalu menata gayanya.

Detail batch

Permintaan batch terdiri dari satu panggilan metode batchUpdate dengan beberapa subpermintaan, misalnya, untuk menambahkan lalu memformat presentasi.

Setiap permintaan divalidasi sebelum diterapkan. Semua subpermintaan dalam batch update diterapkan secara atomik. Artinya, jika ada permintaan yang tidak valid, seluruh update akan gagal dan tidak ada perubahan (yang mungkin bergantung) yang diterapkan.

Beberapa permintaan memberikan respons dengan informasi tentang permintaan yang diterapkan. Misalnya, semua permintaan update batch untuk menambahkan objek menampilkan respons sehingga Anda dapat mengakses metadata objek yang baru ditambahkan, seperti ID atau judul.

Dengan pendekatan ini, Anda dapat membuat seluruh dokumen Google menggunakan satu permintaan update batch API dengan beberapa sub-permintaan.

Format permintaan batch

Permintaan adalah satu permintaan JSON yang berisi beberapa subpermintaan bertingkat dengan satu properti wajib: requests. Permintaan dibuat dalam array permintaan individual. Setiap permintaan menggunakan JSON untuk merepresentasikan objek permintaan dan berisi propertinya.

Format respons batch

Format respons untuk permintaan batch mirip dengan format permintaan. Respons server berisi respons lengkap dari satu objek respons.

Properti objek JSON utama diberi nama replies. Respons ditampilkan dalam array, dengan setiap respons terhadap salah satu permintaan menempati urutan indeks yang sama dengan permintaan yang sesuai. Beberapa permintaan tidak memiliki respons dan respons pada indeks array tersebut kosong.

Contoh

Contoh kode berikut menunjukkan penggunaan batch dengan Slides API.

Permintaan

Contoh permintaan batch ini menunjukkan cara:

{
   "requests":[
      {
         "createSlide":{
            "insertionIndex":1,
            "objectId":"newSlide"
         }
      },
      {
         "createShape":{
            "elementProperties":{
               "pageObjectId":"newSlide",
               "size":{
                  "height":{
                     "magnitude":50,
                     "unit":"PT"
                  },
                  "width":{
                     "magnitude":200,
                     "unit":"PT"
                  }
               }
            },
            "shapeType":"TEXT_BOX",
            "objectId":"newTextBox"
         }
      },
      {
         "insertText":{
            "objectId":"newTextBox",
            "text":"Hello World"
         }
      }
   ]
}

Respons

Contoh respons batch ini menampilkan informasi tentang cara penerapan setiap subpermintaan dalam permintaan batch. Perhatikan bahwa metode InsertTextRequest tidak berisi respons, sehingga nilai indeks array di [2] terdiri dari tanda kurung kurawal kosong. Permintaan batch menampilkan properti WriteControl, yang menunjukkan cara permintaan tulis dieksekusi.

{
   "requiredRevisionId": ID
   "presentationId": "",
   "replies":[
      {
         "createSlide":{
            "objectId":"newSlide"
         }
      },
      {
         "createShape":{
            "objectId":"newTextBox"
         }
      },
      {
         
      }
   ],
   "writeControl":{
      "requiredRevisionId": REVISION_ID
   }
}