#P1720
RESOURCE /v2/landing_pages
Landing Page Management
این بخش شامل مدیریت کامل صفحات فرود (Landing Pages) است.
این صفحات معمولاً برای کمپینهای خاص یا صفحات ایستا استفاده میشوند و شامل مدیریت سئو (Meta Tags) به صورت تودرتو هستند.
1. List Landing Pages (Index)
URL:
/v2/landing_pagesMethod: GET
Controller: LandingPageController@index
توجه: در این متد از صفحهبندی (Pagination) استفاده نشده و تمام رکوردهای موجود در جدول برگردانده میشوند.
مثال پاسخ
{
"status": true,
"time": 1715016000,
"data": [
{
"id": 1,
"title": "Black Friday Sale",
"slug": "black-friday",
"image": "https://...",
"published_at": "2024-11-20 00:00:00"
},
{
"id": 2,
"title": "Norouz Campaign",
"slug": "norouz-1404",
"image": "https://...",
"published_at": "2025-03-20 00:00:00"
}
]
}
2. Create Landing Page (Store)
URL:
/v2/landing_pagesMethod: POST
Controller: LandingPageController@store
ایجاد صفحه فرود جدید به همراه متاتگهای سئو.
بدنه درخواست (Body Parameters)
| Field | Type | Description |
|---|---|---|
| title | string | (الزامی) عنوان صفحه |
| slug | string | (الزامی) آدرس یکتا |
| body | text | محتوای HTML یا متن صفحه |
| image | string | لینک تصویر شاخص |
| published_at | datetime | تاریخ انتشار |
| meta_tag | string | (احتمالاً متاتگ کلی یا توضیحات متا) |
| metatags | array | آرایهای از اشیاء برای جدول page_metatags. ساختار: [{"key": "keywords", "value": "test"}] |
رفتار سیستمی: متاتگهای ارسالی در آرایه metatags با تایپ landing_page در دیتابیس ذخیره میشوند.
3. Show Landing Page
URL:
/v2/landing_pages/{id}Method: GET
Controller: LandingPageController@show
دریافت جزئیات کامل یک صفحه فرود.
4. Update Landing Page
URL:
/v2/landing_pages/{id}Method: PUT/PATCH
Controller: LandingPageController@update
ویرایش اطلاعات صفحه فرود و مدیریت هوشمند متاتگها.
منطق آپدیت متاتگها (Metatags Logic)
هنگام ارسال آرایه metatags، سیستم روی هر آیتم پیمایش میکند:
- اگر
idداشته باشد: متاتگ موجود با آن ID را پیدا کرده وkeyوbody(مقدار value) آن را آپدیت میکند. - اگر
idنداشته باشد: یک متاتگ جدید ایجاد میکند.
(نکته کدنویسی: طبق کد موجود، متاتگهای جدیدی که در متد آپدیت ساخته میشوند، تایپarticleمیگیرند، در حالی که در متد Store تایپlanding_pageبود).
Update Request
↓
Update LandingPage Basic Info
↓
Loop Metatags Array
Has "id"?
Find PageMetatag(id)
Update key & value
Update key & value
No "id"
Create NEW PageMetatag
(type='article')
(type='article')
↓
Return {status: true}
5. Delete Landing Page
URL:
/v2/landing_pages/{id}Method: DELETE
Controller: LandingPageController@destroy
حذف صفحه فرود (و احتمالاً متاتگهای وابسته اگر Cascade در دیتابیس تنظیم شده باشد).