Batas dan kuota melindungi infrastruktur Google dari proses otomatis yang menggunakan Data Transfer API dengan cara yang tidak tepat. Permintaan yang berlebihan dari API dapat disebabkan oleh kesalahan ketik yang tidak berbahaya, atau akibat sistem yang tidak didesain secara efisien yang membuat panggilan API yang tidak perlu. Apa pun penyebabnya, memblokir traffic dari sumber tertentu ketika mencapai tingkat tertentu diperlukan untuk memastikan kondisi sistem Google Workspace secara keseluruhan. Solusi ini memastikan bahwa tindakan seorang developer tidak dapat berdampak negatif pada komunitas yang lebih luas.
Kegagalan permintaan API
Jika permintaan API Anda gagal, aplikasi Anda akan menerima respons kode status HTTP. Kode status 403
memiliki informasi error tentang input yang salah, dan kode status HTTP 503
memiliki informasi error yang menunjukkan kuota API mana yang telah terlampaui. Respons ini memungkinkan aplikasi kustom Anda mendeteksi error ini dan mengambil tindakan yang tepat.
Menyelesaikan permintaan dalam jangka waktu tetap
Jika permintaan Anda perlu diselesaikan dalam jangka waktu tertentu, kirim permintaan secara paralel atau gunakan beberapa thread di aplikasi Java atau C#. Misalnya, pecahkan permintaan Anda berdasarkan bulan atau jangka waktu yang lain. Untuk thread, cobalah memulai dengan 10 thread, satu thread per permintaan. Rekomendasi thread memiliki konsekuensi dan tidak berguna untuk semua situasi API. Jika jumlah permintaan terlalu tinggi, error kuota akan terjadi.
Error berbasis waktu
Untuk semua error yang berbasis waktu (maksimum N hal selama X detik per thread), terutama
error kode status 503
, sebaiknya kode Anda menangkap pengecualian dan dengan menggunakan
algoritma
backoff eksponensial, tunggu sedikit penundaan sebelum mencoba kembali panggilan yang gagal. Contoh Data Transfer API
untuk satu thread adalah menunggu 5 detik dan mencoba lagi panggilan yang gagal. Jika permintaan berhasil,
ulangi pola ini untuk thread lainnya. Jika permintaan kedua tidak berhasil, aplikasi Anda harus menurunkan skala frekuensi permintaan hingga panggilan berhasil. Misalnya, tingkatkan penundaan awal 5 detik menjadi 10 detik dan coba lagi panggilan Anda yang gagal. Selain itu,
tentukan batas percobaan ulang. Misalnya, coba lagi permintaan 5 hingga 7 kali dengan waktu tunda berbeda
sebelum aplikasi menampilkan error kepada pengguna.
Batas
Kategori batas API | Batas |
---|---|
Kueri per detik (QPS) | Batas project developer adalah 10 kueri per detik (QPS) per akun. |
Kuota
Kategori kuota API | Kuota |
---|---|
Permintaan API maksimum per hari | Permintaan API maksimum per hari adalah 500.000. |
Mengarsipkan, masa berlaku pesan | Arsip grup tidak akan habis masa berlakunya. Pesan tetap ada dalam arsip sampai grup dihapus. Kebijakan retensi email tidak memengaruhi pesan dalam arsip grup. |
Ukuran pesan email | Ukuran maksimum pesan email adalah 25 MB. Batas ini meliputi header, isi, dan lampiran metadata pesan. |
Jenis batas lainnya
Jenis batas lainnya | Batasan dan panduan |
---|---|
Format jenis konten | Pesan email harus dalam format teks RFC 822 standar.
Format jenis konten permintaan untuk mengupload email yang dimigrasikan menggunakan
header Content-type: message/rfc822 .
|
Format data dalam respons API | Format data respons adalah JavaScript Object Notation (JSON). |
Kebijakan lokasi data | Data Transfer API tidak mendukung kebijakan lokasi data yang mengharuskan data disimpan di batas geografis atau politik tertentu untuk alasan kontraktual. Jangan gunakan Data Transfer API jika lokasi data diperlukan untuk akun Anda. |
Penyisipan pesan paralel | Data Transfer API mendukung permintaan paralel untuk penyisipan email ke dalam arsip grup yang berbeda. Namun, Data Transfer API tidak mendukung penyisipan pesan paralel ke dalam arsip grup yang sama. Permintaan batch juga tidak didukung dalam versi API ini. |
Permintaan tidak sah | Data Transfer API tidak menerima permintaan yang tidak sah. Permintaan dianggap tidak sah jika token otorisasi tidak diberikan. |