پرش به مطلب اصلی

درخواست‌های API مدیریت

این سند نقاط پایانی API موجود برای برنامه‌های مدیریتی جهت مدیریت پست‌ها در ماژول CMS را توضیح می‌دهد.

لیست پست‌ها​

بازیابی لیست تمام پست‌ها با جزئیات مدیریتی.

درخواست​

GET /api/admin/v3/cms/post?includes=category,tags,author&field_sets=%7B%22cms_posts%22%3A%22id%2Ctitle%2Cslug%2Cexcerpt%2Ccontent%2Cfeatured_image%2Cstatus%2Ccreated_at%2Cupdated_at%2Cpublished_at%2Ccategory%2Ctags%2Cauthor%2Cview_count%2Ccomment_count%2Cis_featured%2Cseo%22%7D&search=status%3Apublished&searchFields=status&per_page=20&page=1 HTTP/1.1
Api-Key: {{api-key}}

پارامترهای پرس‌وجو​

پارامترنوعتوضیحات
includesstringموجودیت‌های مرتبط برای گنجاندن در پاسخ (مثلاً category,tags,author)
field_setsobjectشیء JSON که مشخص می‌کند کدام فیلدها برای هر نوع موجودیت گنجانده شوند
searchstringعبارات جستجو با قالب field:value
searchFieldsstringفیلدهایی که در آنها جستجو شود
searchJoinstringنحوه پیوند عبارات جستجوی چندگانه (and یا or)
per_pageintegerتعداد آیتم‌ها در هر صفحه
pageintegerشماره صفحه برای صفحه‌بندی
sortstringفیلد برای مرتب‌سازی (گزینه‌ها: id، created_at، updated_at، title، status)
orderstringترتیب مرتب‌سازی (گزینه‌ها: asc، desc)

پاسخ​

{
"status": true,
"result": [
{
"id": 1,
"title": "نمونه عنوان مقاله",
"slug": "sample-post-title",
"excerpt": "این یک نمونه خلاصه مقاله است...",
"content": "این محتوای کامل مقاله نمونه است...",
"featured_image": "https://example.com/images/sample-post.jpg",
"status": "published",
"created_at": "2025-03-15T10:30:00.000000Z",
"updated_at": "2025-03-15T14:45:00.000000Z",
"published_at": "2025-03-15T15:00:00.000000Z",
"category": {
"id": 3,
"name": "تکنولوژی",
"slug": "technology"
},
"tags": [
{
"id": 7,
"name": "API",
"slug": "api"
},
{
"id": 12,
"name": "مستندات",
"slug": "documentation"
}
],
"author": {
"id": 5,
"name": "جان دو",
"email": "john.doe@example.com",
"avatar_url": "https://www.gravatar.com/avatar/abc123.jpg?s=80&d=mp&r=g"
},
"view_count": 1250,
"comment_count": 18,
"is_featured": true,
"seo": {
"meta_title": "عنوان سئو سفارشی",
"meta_description": "توضیحات سئو سفارشی برای موتورهای جستجو",
"og_image": "https://example.com/images/og-sample-post.jpg"
}
}
],
"meta": {
"pagination": {
"total": 98,
"count": 20,
"per_page": 20,
"current_page": 1,
"total_pages": 5,
"links": {
"next": "http://localhost:8080/api/admin/v3/cms/post?includes=category,tags,author&field_sets=%7B%22cms_posts%22%3A%22id%2Ctitle%2Cslug%2Cexcerpt%2Ccontent%2Cfeatured_image%2Cstatus%2Ccreated_at%2Cupdated_at%2Cpublished_at%2Ccategory%2Ctags%2Cauthor%2Cview_count%2Ccomment_count%2Cis_featured%2Cseo%22%7D&search=status%3Apublished&searchFields=status&per_page=20&page=2"
}
}
}
}

ایجاد پست​

ایجاد یک پست جدید در CMS.

درخواست​

POST /api/admin/v3/cms/post HTTP/1.1
Api-Key: {{api-key}}
Content-Type: application/json

بدنه درخواست​

{
"title": "عنوان مقاله جدید",
"slug": "new-post-title",
"excerpt": "این خلاصه برای مقاله جدید است...",
"content": "این محتوای کامل مقاله جدید است...",
"featured_image": "https://example.com/images/new-post.jpg",
"status": "draft",
"category_id": 3,
"tag_ids": [7, 12],
"author_id": 5,
"is_featured": false,
"published_at": "2025-04-10T12:00:00Z",
"seo": {
"meta_title": "عنوان سئو سفارشی",
"meta_description": "توضیحات سئو سفارشی برای موتورهای جستجو",
"og_image": "https://example.com/images/og-new-post.jpg"
}
}

پاسخ​

{
"status": true,
"result": {
"id": 99,
"title": "عنوان مقاله جدید",
"slug": "new-post-title",
"excerpt": "این خلاصه برای مقاله جدید است...",
"content": "این محتوای کامل مقاله جدید است...",
"featured_image": "https://example.com/images/new-post.jpg",
"status": "draft",
"created_at": "2025-04-05T19:30:00.000000Z",
"updated_at": "2025-04-05T19:30:00.000000Z",
"published_at": "2025-04-10T12:00:00.000000Z",
"category": {
"id": 3,
"name": "تکنولوژی",
"slug": "technology"
},
"tags": [
{
"id": 7,
"name": "API",
"slug": "api"
},
{
"id": 12,
"name": "مستندات",
"slug": "documentation"
}
],
"author": {
"id": 5,
"name": "جان دو",
"email": "john.doe@example.com",
"avatar_url": "https://www.gravatar.com/avatar/abc123.jpg?s=80&d=mp&r=g"
},
"view_count": 0,
"comment_count": 0,
"is_featured": false,
"seo": {
"meta_title": "عنوان سئو سفارشی",
"meta_description": "توضیحات سئو سفارشی برای موتورهای جستجو",
"og_image": "https://example.com/images/og-new-post.jpg"
}
}
}

به‌روزرسانی پست​

به‌روزرسانی یک پست موجود.

درخواست​

PUT /api/admin/v3/cms/post/{post_id} HTTP/1.1
Api-Key: {{api-key}}
Content-Type: application/json

پارامترهای مسیر​

پارامترنوعتوضیحات
post_idintegerشناسه پست

بدنه درخواست​

مشابه ایجاد پست است، اما تمام فیلدها اختیاری هستند. فقط فیلدهایی را که می‌خواهید به‌روزرسانی کنید، شامل کنید.

پاسخ​

{
"status": true,
"result": {
"id": 1,
"title": "عنوان مقاله به‌روزرسانی شده",
"slug": "updated-post-title",
"excerpt": "این خلاصه به‌روزرسانی شده مقاله است...",
"content": "این محتوای کامل به‌روزرسانی شده مقاله است...",
"featured_image": "https://example.com/images/updated-post.jpg",
"status": "published",
"created_at": "2025-03-15T10:30:00.000000Z",
"updated_at": "2025-04-05T20:15:00.000000Z",
"published_at": "2025-04-05T20:15:00.000000Z",
"category": {
"id": 5,
"name": "آموزش",
"slug": "education"
},
"tags": [
{
"id": 7,
"name": "API",
"slug": "api"
},
{
"id": 15,
"name": "برنامه‌نویسی",
"slug": "programming"
}
],
"author": {
"id": 5,
"name": "جان دو",
"email": "john.doe@example.com",
"avatar_url": "https://www.gravatar.com/avatar/abc123.jpg?s=80&d=mp&r=g"
},
"view_count": 1250,
"comment_count": 18,
"is_featured": true,
"seo": {
"meta_title": "عنوان سئو به‌روزرسانی شده",
"meta_description": "توضیحات سئو به‌روزرسانی شده برای موتورهای جستجو",
"og_image": "https://example.com/images/og-updated-post.jpg"
}
}
}

دریافت پست​

بازیابی یک پست خاص با شناسه.

درخواست​

GET /api/admin/v3/cms/post/{post_id}?includes=category,tags,author HTTP/1.1
Api-Key: {{api-key}}

پارامترهای مسیر​

پارامترنوعتوضیحات
post_idintegerشناسه پست

پارامترهای پرس‌وجو​

پارامترنوعتوضیحات
includesstringموجودیت‌های مرتبط برای گنجاندن در پاسخ (مثلاً category,tags,author)

پاسخ​

مشابه پاسخ برای به‌روزرسانی پست است.

حذف پست (انتقال به سطل زباله)​

انتقال یک پست به سطل زباله (حذف نرم).

درخواست​

DELETE /api/admin/v3/cms/post/{post_id}/trash HTTP/1.1
Api-Key: {{api-key}}

پارامترهای مسیر​

پارامترنوعتوضیحات
post_idintegerشناسه پست

پاسخ​

{
"status": true,
"result": {
"message": "Post moved to trash successfully"
}
}

حذف دائمی پست​

حذف دائمی یک پست از پایگاه داده.

درخواست​

DELETE /api/admin/v3/cms/post/{post_id} HTTP/1.1
Api-Key: {{api-key}}

پارامترهای مسیر​

پارامترنوعتوضیحات
post_idintegerشناسه پست

پاسخ​

{
"status": true,
"result": {
"message": "Post deleted permanently"
}
}

بازیابی پست از سطل زباله​

بازیابی یک پست از سطل زباله.

درخواست​

POST /api/admin/v3/cms/post/{post_id}/restore HTTP/1.1
Api-Key: {{api-key}}

پارامترهای مسیر​

پارامترنوعتوضیحات
post_idintegerشناسه پست

پاسخ​

{
"status": true,
"result": {
"message": "Post restored successfully"
}
}

عملیات دسته‌ای​

انجام عملیات روی چندین پست به طور همزمان.

درخواست​

POST /api/admin/v3/cms/post/bulk HTTP/1.1
Api-Key: {{api-key}}
Content-Type: application/json

بدنه درخواست​

{
"ids": [1, 2, 3, 4, 5],
"action": "trash" // گزینه‌ها: trash, restore, delete, publish, draft, archive
}

پاسخ​

{
"status": true,
"result": {
"message": "Bulk action completed successfully",
"affected": 5
}
}

مدیریت نظرات پست​

لیست نظرات برای یک پست​

GET /api/admin/v3/cms/post/{post_id}/comments?page=1&per_page=20 HTTP/1.1
Api-Key: {{api-key}}

پاسخ​

{
"status": true,
"result": {
"comments": [
{
"id": 101,
"content": "این مقاله بسیار مفید بود!",
"created_at": "2025-03-16T09:45:00.000000Z",
"updated_at": "2025-03-16T09:45:00.000000Z",
"status": "approved",
"user": {
"id": 42,
"name": "سارا احمدی",
"email": "sara@example.com",
"avatar_url": "https://www.gravatar.com/avatar/abc123.jpg?s=80&d=mp&r=g"
},
"parent_id": null,
"replies_count": 1
}
],
"meta": {
"pagination": {
"total": 18,
"count": 1,
"per_page": 20,
"current_page": 1,
"total_pages": 1
}
}
}
}

تأیید نظر​

PUT /api/admin/v3/cms/comment/{comment_id}/approve HTTP/1.1
Api-Key: {{api-key}}

پاسخ​

{
"status": true,
"result": {
"message": "Comment approved successfully"
}
}

رد نظر​

PUT /api/admin/v3/cms/comment/{comment_id}/reject HTTP/1.1
Api-Key: {{api-key}}

پاسخ​

{
"status": true,
"result": {
"message": "Comment rejected successfully"
}
}

حذف نظر​

DELETE /api/admin/v3/cms/comment/{comment_id} HTTP/1.1
Api-Key: {{api-key}}

پاسخ​

{
"status": true,
"result": {
"message": "Comment deleted successfully"
}
}

پاسخ‌های خطا​

یافت نشد (404)​

{
"status": false,
"error": {
"message": "Post not found",
"code": "resource_not_found"
}
}

خطای اعتبارسنجی (422)​

{
"status": false,
"error": {
"message": "Validation failed",
"errors": {
"title": [
"عنوان مقاله الزامی است."
],
"content": [
"محتوای مقاله الزامی است."
]
},
"code": "validation_failed"
}
}

خطای احراز هویت (401)​

{
"status": false,
"error": {
"message": "Unauthenticated",
"code": "authentication_required"
}
}

خطای مجوز (403)​

{
"status": false,
"error": {
"message": "You do not have permission to perform this action",
"code": "permission_denied"
}
}