ما میخواهیم توسعهدهندگان تجربههای کاربری قانعکنندهای ایجاد کنند، اما همچنین میخواهیم سرویس و دستگاههای Nest همیشه برای کاربر در دسترس باشند. محصولاتی که تعداد زیادی درخواست در یک بازه زمانی معین ارائه میکنند، میتوانند بر خدمات و در دسترس بودن دستگاه تأثیر بگذارند، بنابراین محدودیتهای نرخ اعمال میکنیم. محدود کردن نرخ، تعداد تماسهای API را برای یک دوره زمانی معین محدود میکند.
انواع محدودیت نرخ
ما دو کلاس محدودیت نرخ را اجرا کرده ایم. اولین محدودیت در هر دستگاه یا ساختار در ساعت می باشد. این محدودیتها در همه محصولات Works with Nest مشترک است و برای جلوگیری از استفاده بیش از حد از دستگاهها در نظر گرفته شده است. کلاس دوم از محدودیت در هر نشانه دسترسی هستند. این محدودیتها برای جلوگیری از استفاده بیش از حد از سرویس Nest طراحی شدهاند.
محدودیت در هر دستگاه/ساختار
هر نوشتن در مدل داده نیاز به بیدار شدن و همگام سازی وضعیت دستگاه دارد. این میتواند بر عمر باتری تأثیر بگذارد، بنابراین تعداد نوشتنها را به دستگاهها و ساختارها محدود میکنیم. ما همچنین وضعیت باتری همه دستگاه ها را کنترل می کنیم. اگر آنها از یک آستانه خاص پایین بیایند، ما درخواست های نوشتن را تا زمانی که باتری شارژ نشود رد می کنیم.
به ازای محدودیت های رمز دسترسی
هر نشانه دسترسی نیز دارای یک محدودیت نرخ مرتبط است. ایجاد اتصالات به این سرویس مقداری سربار را متحمل می شود، بنابراین ما تعداد اتصالاتی را که یک محصول می تواند در یک دوره زمانی خاص ایجاد کند محدود می کنیم.
برای تماسهای جریان REST و REST، هر نشانه دسترسی تعداد محدودی تماس دارد. محدودیتهای سرعت داده برای خواندن/نوشتن تماسها از طریق REST، و در تماسهای خواندنی از طریق پخش جریانی REST اعمال میشود. برای جلوگیری از خطا، توصیه می کنیم درخواست ها را حداکثر به یک تماس در دقیقه محدود کنید.
پاسخ خطا
هنگام استفاده از REST شما یک کد پاسخ 429 درخواستهای بسیار زیاد دریافت خواهید کرد.
مدیریت تغییر مسیرهای 307
هنگامی که ساخت REST تماس، محصول خود را نیاز به رسیدگی 307 تغییر مسیر. همچنین به عنوان ارسال URL شناخته می شود، یک پاسخ تغییر مسیر موقت 307 URL جدیدی را برای مرورگر فراهم می کند تا دوباره درخواست ارسال کند.
وقتی تغییر مسیر 307 اتفاق افتاد، باید دوباره با اطلاعات URL جدید تماس برقرار کنید. وقتی این کار را انجام میدهید، باید میزبان و شماره پورت را برای استفاده در تماسهای بعدی با آن توکن کاربر/دسترسی کش کنید. به یاد داشته باشید، هر تماس به عنوان محدودیت نرخ محاسبه می شود. نحوه تعامل کاربر شما با محصول شما را در نظر بگیرید. برخی از کاربران یک دکمه را فشار میدهند یا یک تنظیم را به طور مکرر انتخاب میکنند، بنابراین اگر برای هر اقدام کاربر تماس برقرار کنید، میتواند خیلی سریع بر محدودیتهای نرخ تأثیر بگذارد. اگر کاربر یک سری تغییرات را به صورت متوالی انجام دهد، شما باید فقط برای آخرین (جدیدترین) مقدار، یک فراخوانی API انجام دهید.
برای کسب اطلاعات بیشتر و نمونه، و چگونگی رفتار با تغییرمسیر .
بعد از تغییر مسیر 307
اگر از اطلاعات URL ریدایرکت استفاده می کنید و بعداً یک تغییر مسیر 307 دریافت می کنید، باید آن تغییر مسیر را دنبال کنید.
خطای اتصال
اگر از اطلاعات URL ذخیره شده در حافظه پنهان استفاده می کنید و با خطای اتصال مواجه می شوید (به دلیل عدم سرویس دهی یا خرابی سایت)، باید به URL اصلی اصلی برگردید.
محدودیت نرخ تغییر می کند
همانطور که در مورد الگوهای استفاده و تأثیر آنها بر سرویس بیشتر می آموزیم، ممکن است نیاز به اصلاح محدودیت های نرخ داشته باشیم. ما قویاً شما را تشویق میکنیم که محصولات خود را طوری بسازید که از حداقل تعداد تماسهای لازم برای ایجاد یک تجربه کاربری قانعکننده استفاده کنید و با نقض محدودیتهای نرخ به طور مناسب برخورد کنید.