#P1393
GET /api/v2/notifications
Route Info
| Method | Endpoint | Controller | Middleware | Purpose | تگ Swagger |
| GET | /api/v2/notifications | V2BaseController@notifications | domainAccess, ipTrust | دریافت لیست اعلانهای سیستمی و بهروزرسانیها در محیط کاربر | tags={"Base","Notifications"} |
توضیح عملکرد (Function Logic)
این Endpoint آرایهای از اعلانهای عمومی (Public System Notifications) را برمیگرداند که معمولاً شامل تغییرات جدید در امکانات، هشدارهای داخلی یا پیامهای اداری است. در حال حاضر ثابت (Static) است اما معمولاً در محیط Production دادهها از جدول
notifications یا کش Redis تأمین میشوند.- احراز IP و دامنه درخواست از طریق Middlewareهای
domainAccessوipTrust. - تولید آرایهای از اعلانها با فیلدهای کلیدی:
- id: شناسه یکتا
- icon: آیکن متریال مرتبط با اعلان
- title: تیتر اعلان
- description: متن توضیحی اعلان
- time: زمان ایجاد اعلان به فرمت شمسی
- read: وضعیت مطالعهشده بودن توسط کاربر
- link: مسیر واکنشپذیر (قابل کلیک در UI)
- useRouter: نوع هدایت (true ⇒ استفاده از Router داخلی SPA)
- بازگشت خروجی به صورت JSON (بدون نیاز به Token در این نسخه از Endpoint)
ساختار درخواست (Request)
این متد نیازی به پارامتر ورودی ندارد.
GET /api/v2/notifications Domain: example.domain
خروجی (Response Structure)
| فیلد | نوع داده | توضیح |
| id | string | شناسه یکتا برای هر اعلان |
| icon | string | نام آیکن متریال (برای نمایش تصویری اعلان) |
| title | string | تیتر کوتاه اعلان |
| description | string | توضیح کامل محتوای اعلان |
| time | string (datetime) | تاریخ و ساعت اعلان به فرمت شمسی |
| read | boolean | وضعیت خواندهشدن اعلان توسط کاربر |
| link | string | مسیر URL یا Route مقصد |
| useRouter | boolean | True ⇐ استفاده از Router کلاینتی برای تغییر مسیر نرمافزاری |
نمونه پاسخ
[
{
"id": "01",
"icon": "airline_seat_recline_extra",
"title": "ویرایش خرید پرواز آنلاین",
"description": "به اطلاع کلیه همکاران میرسانیم قسمت ویرایش پرواز های آنلاین فعال گردید.",
"time": "1402-02-02 00:00:00",
"read": true,
"link": "/",
"useRouter": true
}
]
نکات امنیتی
- استفاده از Middleware domainAccess و ipTrust برای محدود کردن دسترسی به دامنهها و IPهای مجاز.
- در حالت فعلی نیازی به توکن JWT ندارد اما در محیط Production معمولاً با
authWithJwtترکیب میشود. - در پاسخ، مقادیر هیچ دادهی حساسی برنمیگردد — تنها اعلانهای عمومی هستند.
توضیح فیلدهای پاسخ
- id: شناسه عددی / رشتهای قابل جستوجو برای هر اعلان در کلاینت.
- icon: نام آیکن از مجموعه Material Icons برای نمایش در رابط کاربری.
- title: تیتر کوتاه در بالای باکس اعلان.
- description: پیام اصلی اطلاعرسانی.
- time: رشته زمان به فرمت "YYYY-MM-DD HH:MM:SS".
- read: وضعیت مطالعه (true = خوانده شده).
- link: مسیر قابل کلیک داخل سیستم (مثلاً "/dashboard").
- useRouter: اگر true باشد، مسیر فوق در Router داخلی اپلیکیشن باز میشود بدون رفرش.
وابستگیها (Dependencies)
- use Illuminate\Http\Request;
- use App\Http\Controllers\Controller as BaseController;
پیوست نگهداری و توسعه بعدی
- بهبود ساختار خروجی برای پشتیبانی از چند اعلان همزمان (pagination و unread count).
- افزودن فیلد
categoryبرای تفکیک نوع اعلان (مثلاً “news”, “update”, “security”). - افزودن endpoint جدید:
PATCH /api/v2/notifications/readبرای علامتگذاری اعلانها به عنوان خوانده شده. - ذخیره کش Redis از نوتیفیکیشنها برای سرعت بیشتر پنل.