محدودیتها و سهمیهها از زیرساخت Google در برابر فرآیند خودکاری که از گزارشهای API به روشی نامناسب استفاده میکند محافظت میکند. درخواستهای بیش از حد از یک API ممکن است ناشی از یک اشتباه تایپی بیضرر باشد، یا ممکن است ناشی از طراحی ناکارآمد سیستمی باشد که تماسهای API بیضروری را ایجاد میکند. صرف نظر از علت، مسدود کردن ترافیک از یک منبع خاص پس از رسیدن به سطح مشخصی برای سلامت کلی سیستم Google Workspace ضروری است. این تضمین می کند که اقدامات یک توسعه دهنده نمی تواند تأثیر منفی بر جامعه بزرگتر بگذارد.
در صورتی که درخواست API شما ناموفق باشد، پاسخ کد وضعیت HTTP را دریافت خواهید کرد. کد وضعیت 403 دارای اطلاعات خطا در مورد ورودی نادرست است و کد وضعیت HTTP 503 دارای اطلاعات خطایی است که نشان می دهد از کدام سهمیه های API فراتر رفته است. این پاسخ ها به برنامه سفارشی شما اجازه می دهد تا این خطاها را شناسایی کرده و اقدامات مناسب را انجام دهد.
اگر درخواستهای شما باید در یک بازه زمانی مشخص تکمیل شوند، درخواستهای خود را به صورت موازی ارسال کنید یا از چندین رشته در برنامه جاوا یا سی شارپ خود استفاده کنید. نمونه ای از درخواست های موازی، درخواست دسته های کوچک ایمیل از کاربران مختلف به جای افزودن یا حذف تعداد زیادی ایمیل از یک کاربر به طور همزمان است. در مورد موضوعات، سعی کنید با 10 رشته شروع کنید، یک رشته برای هر ایمیل کاربر. توجه داشته باشید، توصیه رشته دارای معاوضههایی است و برای همه موقعیتهای API مفید نیست. اگر تعداد درخواست ها خیلی زیاد شود، خطاهای سهمیه ای رخ می دهد.
برای همه خطاهایی که مبتنی بر زمان هستند (حداکثر N چیز برای N ثانیه در هر رشته)، به خصوص خطاهای کد وضعیت 503، توصیه می کنیم کد شما استثنا را بگیرد و با استفاده از یک الگوریتم عقب نشینی نمایی ، قبل از تلاش مجدد برای تماس ناموفق منتظر کمی تاخیر باشید. یک مثال Reports API برای یک رشته این است که 5 ثانیه صبر کنید و تماس ناموفق را دوباره امتحان کنید. اگر درخواست موفقیت آمیز بود، این الگو را برای رشته های دیگر تکرار کنید. اگر درخواست دوم موفقیت آمیز نبود، برنامه شما باید تعداد دفعات درخواست را کاهش دهد تا زمانی که تماس موفقیت آمیز باشد. به عنوان مثال، 5 ثانیه تاخیر اولیه را به 10 ثانیه افزایش دهید و دوباره تماس ناموفق خود را دوباره امتحان کنید. همچنین، در مورد محدودیت تلاش مجدد تصمیم بگیرید. به عنوان مثال، قبل از اینکه برنامه شما خطایی را به کاربر بازگرداند، یک درخواست را 5 تا 7 بار با زمانهای تاخیر متفاوت امتحان کنید.
محدودیت ها
دسته بندی های محدود API | محدودیت ها |
---|---|
نرخ QPS و QPD را گزارش کنید | API تعداد درخواستهای پروژه Google Cloud شما را محدود میکند. مقدار پیش فرض تنظیم شده در کنسول Google Cloud 2400 پرس و جو در دقیقه برای هر کاربر در هر پروژه Google Cloud است. میتوانید این محدودیت را از صفحه Admin SDK API Quotas پروژه Google Cloud خود افزایش دهید. اگر از این محدودیت ها فراتر رفت، سرور یک کد وضعیت HTTP 503 را برمی گرداند. هنگام امتحان مجدد درخواست های خود از الگوریتم عقب نشینی نمایی استفاده کنید. |
محدودیت های اضافی برای activities.list | API activities.list دارای محدودیت اضافی 250 درخواست فیلتر در دقیقه (15000 درخواست فیلتر در ساعت) است. پرس و جو فیلتر یک درخواست API است که حداقل یکی از پارامترهای پرس و جو زیر را شامل می شود:
|
دسته های سهمیه API | سهمیه ها |
حداکثر نتایج | تعداد رکوردهای فهرست شده در هر صفحه از پاسخ API از 0 تا 1000 رکورد است. پیش فرض 1000 رکورد است. |
انواع دیگر محدودیت ها
انواع دیگر محدودیت ها | محدودیت ها و دستورالعمل ها |
---|---|
فرمت داده، پیش فرض | فرمت داده پیش فرض JSON است. API از فرمت Atom نیز پشتیبانی می کند. |
درخواست های غیرمجاز | Google به درخواستهای غیرمجاز به API اجازه نمیدهد. در صورت عدم ارائه کد مجوز، درخواست غیرمجاز تلقی می شود. برای اطلاعات بیشتر، مجوز درخواستها را ببینید. |
پیام های هشدار دهنده |
|
بهترین شیوه ها برای فعالیت ها.list
انتظار می رود از روش list.active برای تحقیقات حسابرسی استفاده شود. برای بهترین عملکرد، درخواست شما باید شامل یک محدوده زمانی با استفاده از پارامترهای startTime
و endTime
باشد. بازههای زمانی باریکتر منجر به زمان پاسخدهی بسیار سریعتر میشود. این روش برای بازیابی لاگ های حسابرسی با حجم بالا در نظر گرفته نشده است. اگر مرتباً سهمیه درخواست فیلتر فعالیتهای فهرست خود را تمام میکنید، گزینههای زیر را در نظر بگیرید:
- صادرات گزارشهای فضای کاری Google به BigQuery را راهاندازی کنید و از APIهای جستجوی قدرتمند BigQuery برای بازیابی و تجزیه و تحلیل دادههای مورد نیاز خود بدون هیچ گونه محدودیت سهمیه API استفاده کنید.
- به جای استفاده از درخواست های فیلتر، از درخواست های بدون فیلتر با محدوده زمانی استفاده کنید و فیلتر سمت مشتری را انجام دهید (یعنی منطق فیلتر را در برنامه خود انجام دهید). این به شما امکان میدهد از محدودیت ۲۵۰ درخواست فیلتر در دقیقه عبور کنید، اما همچنان مشمول ۲۴۰۰ درخواست در دقیقه به ازای هر کاربر در هر محدودیت پروژه Google Cloud هستید.