Skip to main content
#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.
  • بازگرداندن پاسخ 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 فراهم می‌کند.