تکنولوژی نوین اینترنتی
در لاراول، وقتی با API کار میکنی، بهتره دادههایی که به کلاینت (مثل Vue.js یا اپ موبایل) میفرستی رو ساختارمند و مرتب کنی. اینجاست که چیزی مثل Transformers یا در لاراول، API Resource به کمکت میاد.
Transformer یا Resource، دادههای خام مدلها (مثل User
یا Post
) رو میگیره و به شکل قابل استفاده و قابل خواندن برای API تبدیل میکنه.
لاراول یه سیستم داخلی برای ترنسفورم کردن دادهها داره به اسم Resource Classes.
فایلش توی مسیر app/Http/Resources/UserResource.php
ساخته میشه.
UserResource
یا برای لیست:
میتونی روابط و ساختارهای پیچیدهتر رو هم اضافه کنی:
تو بعضی پروژهها یا لایههای جدا از لاراول، شاید بخوای transformer خودت رو بسازی:
در کنترلر:
ویژگی | Resource (Laravel) | Transformer دستی |
---|---|---|
رسمی و استاندارد | ✅ | ❌ |
اتوماتیک و تمیز | ✅ | 🔧 |
کنترل کامل روی داده | ✅ | ✅ |
متا دیتا و روابط | ✅ | نیاز به پیادهسازی دستی |
استفاده در JsonResponse | عالی | نیاز به json_encode() |
🔧 Resource / Transformer ابزاریه برای:
مرتبسازی دادهها برای API
پنهان کردن فیلدهای حساس (مثل password
)
سفارشیسازی خروجی
سادهتر کردن پاسخها برای فرانتاند
اگه خواستی برات یه مجموعه Resource
برای مدلهایی مثل User
, Post
, و Comment
طراحی کنم، یا یه پاسخ API حرفهای با meta و pagination بسازم، فقط بگو 📦✅