طراحی APIهای REST با لاراول؛ اعتبارسنجی، ریسورس و محدودسازی نرخ
قطعههایی که API لاراول را تمیز و امن نگه میدارند: فرم ریکوئست برای اعتبارسنجی، API ریسورس برای شکلِ پاسخِ یکدست و throttling برای حفاظت از مسیرهای عمومی.
- Home-
- Categories-
- توسعه بکاند-
طراحی APIهای REST با لاراول؛ اعتبارسنجی، ریسورس و محدودسازی نرخ
طراحی APIهای REST با لاراول
از شکل پاسخها شروع کن
سریعترین راه برای دلپسندکردن API نزد مصرفکننده، شکلِ پاسخِ پایدار است. API ریسورسهای لاراول یک نقطهی واحد برای تعریف آن میدهند تا فرانتاند هیچوقت مجبور نباشد حدس بزند که خروجی آبجکت است، آرایه است یا چیزی وسط.
اعتبارسنجی متعلق به Form Request است
نوشتن قوانین داخل کنترلر جواب میدهد ولی مقیاس نمیشود. با Form Request اعتبارسنجی، مجوزدهی و قوانین کنار هم مینشینند و میشود جداگانه تستشان کرد.
- قوانین را به دامنهی مربوطه بچسبان.
- خطای پیشفرض ۴۲۲ را برگردان؛ بیشتر کلاینتها آن را بلدند.
- برای موارد خاص، چند rule سفارشی بنویس بهجای اینکه شرایط را در کنترلر تلنبار کنی.
محدودسازی نرخ یک ویژگی امنیتی است، نه یک آپشن
یک مسیر عمومیِ نوشتن تا وقتی throttle نباشد طعمهی اسپم است. برای مسیر، محدودیتِ منطقی (مثلاً چند درخواست در دقیقه) بگذار و بعد ببین کلاینتهای واقعی به چه چیزی نیاز دارند.
این وبسایت چه میکند
API وبلاگ و سایت دقیقاً همین الگو را دنبال میکنند: فرم ریکوئست برای اعتبارسنجی، JSON ریسورس برای خروجی، و throttle برای هر مسیر تا ترافیک ناشناس نتواند دیتابیس را غرق کند.
جمعبندی
قراردادهای کوچک و خستهکننده از انتزاعهای هوشمند بهترند. شکلِ پاسخِ یکدست، اعتبارسنجی متمرکز و throttle منطقی، API را از «روی من کار میکند» به «روی همه کار میکند» میرسانند.
130
1600
you might also like...
The pieces that keep a Laravel API clean and safe: form requests for validation, API resources for a consistent response shape, and throttling to protect public endpoints.


