#P1428
POST /api/v2/get_other_services
Route Info
| Method | Endpoint | Controller | Middleware | Purpose |
| POST | /api/v2/get_other_services | UserController@getOtherServices | authWithJwt | دریافت لیست خدمات متفرقه بر اساس نوع و زبان انتخابی |
منطق عملکرد
- تلاش برای واکشی دادهها از Redis با کلید
products:{lang_id}:{action}. - اگر داده موجود نبود:
- کوئری DB روی جدول
productsبرایtype = actionوstatus=1. - ساخت آرایه خروجی با زبان انتخابی (فیلد dynamic:
title_{lang_id}). - ذخیره نتیجه در Redis.
- کوئری DB روی جدول
- بازگرداندن پاسخ JSON با کلید
titlesشامل لیست خدمات.
پارامترهای ورودی
| نام | نوع | ضروری | توضیح |
| lang.id | string | بله | شناسه زبان انتخابی (مثلاً fa یا en) |
| action | string | بله | نوع خدمت موردنظر (type در جدول محصولات) |
POST /api/v2/get_other_services
{
"lang": { "id": "fa" },
"action": "insurance"
}
نمونه خروجی موفق
{
"status": true,
"time": 1732035200,
"data": {
"titles": [
{
"id": 44,
"title": "بیمه مسافرتی",
"description": "پوشش فوت و حوادث خارج از کشور"
}
]
}
}
امنیت
- JWT معتبر لازم است.
- دادهها فقط خواندنی هستند.
Dependencies
- Redis
- DB::table('products')
کارایی
دادهها از Redis در <1 ms، از DB در 5~15 ms خوانده میشوند.
مدیریت خطا
عدم وجود داده به معنای استفاده از fallback DB و ایجاد داده جدید در Redis است.
اثرات جانبی
ذخیره نتایج در Redis برای بهبود عملکرد.
ردپای حسابرسی
لاگگذاری مستقیم ندارد.
پیشنهاد بهبود
- استفاده از TTL روی داده Redis برای بهروزرسانی دورهای.
جمعبندی
روت امکان دریافت سریع خدمات متفرقه را با پشتیبانی کش Redis فراهم میکند.