Skip to content

Commit 15aae6c

Browse files
committed
Ratelimit: merge topics
1 parent cc29604 commit 15aae6c

1 file changed

Lines changed: 36 additions & 32 deletions

File tree

source/includes/_general_notes.md

Lines changed: 36 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -56,30 +56,6 @@
5656
429 | Too Many Requests | تعداد درخواست بیشتر از اندازه مجاز است | <a target="_blank" rel="nofollow" href="https://http.cat/429">🐱</a>
5757
500 | Internal Server Error | مشکلی به صورت موقت در سرور نوبیتکس رخ داده است | <a target="_blank" rel="nofollow" href="https://http.cat/500">🐱</a>
5858

59-
<h2 id="ratelimit">محدودیت فراخوانی</h2>
60-
> نمونه پاسخ ناموفق:
61-
62-
``` json
63-
{
64-
"status": "failed",
65-
"code": "TooManyRequests",
66-
"message": "تعداد درخواست شما بیش از حد معمول تشخیص داده شده. لطفا 12 ثانیه صبر نمایید.",
67-
"backOff": 12,
68-
"limit": 60
69-
}
70-
```
71-
72-
در کنار توضیحات هر API، _محدودیت فراخوانی_ مشخصی برای هر کاربر، IP، توکن و... تعریف شده است.
73-
این محدودیت به‌صورت حداکثر تعداد فراخوانی در یک بازه زمانی تعیین می‌شود.
74-
75-
در صورتی که تعداد درخواست‌ها از این محدودیت فراتر رود، خطای `TooManyRequests` بازگردانده خواهد شد.
76-
برای ارسال مجدد درخواست به همان آدرس، لازم است به اندازه مقدار مشخص‌شده در پارامتر `backOff` (به واحد ثانیه) صبر کنید.
77-
78-
در زمان‌های ازدحام شدید بازار، به‌منظور ایجاد فرصت برابر برای همه کاربران، ممکن است محدودیت فراخوانی یک API برای هر کاربر کاهش یابد.
79-
پارامتر `limit` به تشخیص این وضعیت از حالت عادی کمک می‌کند.
80-
81-
نادیده گرفتن محدودیت فراخوانی به دفعات زیاد، موجب اعمال محدودیت فراخوانی روی توکن کاربر به مدت ۲ دقیقه در تمامی APIها خواهد شد.
82-
8359
<h2 id="pagination">صفحه‌بندی</h2>
8460
پارامترهای زیر در API های دریافت لیست دارای صفحه‌بندی قابل استفاده است:
8561

@@ -114,23 +90,51 @@
11490
به خصوص در هنگام دریافت توکن از API لاگین، علاوه بر سایر پارامترها، رمز یک‌بار مصرف خود را نیز در هدرهای درخواست به این صورت ارسال نمایید:
11591
`X-TOTP: 123456`.
11692

117-
<h2 id="ratelimits"> محدودیت‌های فراخوانی API</h2>
93+
<h2 id="ratelimit">محدودیت فراخوانی</h2>
94+
> نمونه پاسخ ناموفق:
95+
96+
``` json
97+
{
98+
"status": "failed",
99+
"code": "TooManyRequests",
100+
"message": "تعداد درخواست شما بیش از حد معمول تشخیص داده شده. لطفا 12 ثانیه صبر نمایید.",
101+
"backOff": 12,
102+
"limit": 60
103+
}
104+
```
105+
118106
برخی از APIهای نوبیتکس دارای محدودیت تعداد فراخوانی در هر بازه‌ی زمانی هستند. با این حال اگر شما به صورت معمولی و مشابه
119107
استفاده‌ی متداول کاربران از API استفاده کنید، با این محدودیت‌ها مواجه نخواهید شد. محدودیت‌ها به ازای هر API مستقلا محاسبه
120-
و اعمال می‌شوند. محدودیت‌ها معمولا بر اساس آدرس IP درخواست دهنده و در موارد هم بر اساس کاربر (توکن) درخواست دهنده می‌باشند.
121-
در حالتی که به حد مجاز تعداد فراخوانی یک API رسیده باشید، پاسخ آن API به شما یک پیام خطا با کد 403 و دارای توضیحات مشخص
122-
در خصوص آن محدودیت خواهد بود.
108+
و اعمال می‌شوند. محدودیت‌ها معمولا بر اساس آدرس IP درخواست دهنده و در برخی موارد هم بر اساس کاربر (توکن) درخواست دهنده می‌باشند.
109+
110+
در صورتی که تعداد درخواست‌ها از این محدودیت فراتر رود، خطای `TooManyRequests` با کد 429 در پاسخ بازگردانده می‌شود که
111+
همراه با توضیحات مشخص در خصوص آن محدودیت است.
112+
113+
برای ارسال مجدد درخواست به همان آدرس، لازم است به اندازه مقدار مشخص‌شده در پارامتر `backOff` (به واحد ثانیه) صبر کنید.
114+
پارامتر `limit` سقف مجاز تعداد درخواست را در بازه مشخص‌شده نشان می‌دهد.
115+
116+
<aside class="info">
117+
نادیده گرفتن محدودیت فراخوانی به دفعات زیاد و تکرار بی‌امان درخواست‌ها، موجب مسدودی توکن کاربر به مدت ۲ دقیقه
118+
در تمامی APIها خواهد شد.
119+
</aside>
120+
121+
محدودیت‌های استفاده از APIها بر اساس ظرفیت پردازشی نوبیتکس یا به منظور حفظ امنیت برای هر کاربر تعیین می‌شود
122+
تا کیفیت خدمات برای همه کاربران به‌طور یکنواخت حفظ گردد. در زمان‌های ازدحام شدید بازار، به‌منظور ایجاد فرصت برابر برای
123+
همه کاربران، ممکن است محدودیت فراخوانی یک API به ازای یک کاربر کاهش یابد.
123124

124-
در صورتی که به صورت موردی یا در حین تست کد خود به محدودیتی برخورد کردید، می‌توانید با
125-
منتظر ماندن (بین یک ساعت تا یک روز) آن محدودیت را برطرف کنید و دوباره امکان استفاده از API مد نظرتان را داشته باشید. اگر به
126-
صورت مداوم به محدودیتی برای یک API برخورد می‌کنید و فکر می‌کنید که بهتر است تعداد فراخوانی مجاز آن API افزایش یابد، حتما با
127-
ایجاد یک مورد در گیت‌هاب ([لینک ایجاد مورد](https://github.com/nobitex/docs-api/issues/new)) مسئله را با ما مطرح نمایید.
125+
اگر به صورت مداوم با محدودیتی در استفاده از یک API مواجه می‌شوید و بر این باور هستید که افزایش تعداد فراخوانی مجاز
126+
آن API مفید خواهد بود، لطفا از طریق ایجاد یک [مسئله در گیت‌هاب](https://github.com/nobitex/docs-api/issues/new)
127+
درخواست خود را با ما در میان بگذارید.
128128

129129
<h3 id="order_ratelimit">محدودیت مشترک APIهای سفارش‌گذاری</h3>
130130
توجه داشته باشید که تمامی API‌های مربوط به ثبت سفارش دارای محدودیت مشترک روی تعداد سفارش‌هایی که ثبت می‌شوند هستند. برای مثال، اگر همزمان هم در بازار اسپات و هم در بازار تعهدی سفارش ثبت می‌کنید، محدودیت فراخوانی شامل مجموع سفارش‌های ثبت شده در این دو بازار می‌شود.
131131

132132
مقدار محدودیت مشترک: ۳۰۰ درخواست در ۱۰ دقیقه
133133

134+
<h3 id="auth_ratelimit">محدودیت احراز ناموفق</h3>
135+
به منظور حفاظت از امنیت حساب‌های کاربران، در صورتی که بیش از ۱۰۰ درخواست با توکن اشتباه (یا منقضی) از یک آدرس IP
136+
در مدت زمان کمتر از ۳۰ دقیقه ارسال شود، آن IP تا پایان این بازه زمانی مسدود خواهد شد. برای پیشگیری از بروز این مسئله،
137+
توصیه می‌شود فرایند تولید و تجدید توکن خود را مطابق با توضیحات [احراز هویت](/#auth) مدیریت نمایید.
134138

135139

136140
## حالت متداول و Pro

0 commit comments

Comments
 (0)