درخواستهای 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}}
پارامترهای پرسوجو
| پارامتر | نوع | توضیحات |
|---|---|---|
| includes | string | موجودیتهای مرتبط برای گنجاندن در پاسخ (مثلاً category,tags,author) |
| field_sets | object | شیء JSON که مشخص میکند کدام فیلدها برای هر نوع موجودیت گنجانده شوند |
| search | string | عبارات جستجو با قالب field:value |
| searchFields | string | فیلدهایی که در آنها جستجو شود |
| searchJoin | string | نحوه پیوند عبارات جستجوی چندگانه (and یا or) |
| per_page | integer | تعداد آیتمها در هر صفحه |
| page | integer | شماره صفحه برای صفحهبندی |
| sort | string | فیلد برای مرتبسازی (گزینهها: id، created_at، updated_at، title، status) |
| order | string | ترتیب مرتبسازی (گزینهها: 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_id | integer | شناسه پست |
بدنه درخواست
مشابه ایجاد پست است، اما تمام فیلدها اختیاری هستند. فقط فیلدهایی را که میخواهید بهروزرسانی کنید، شامل کنید.
پاسخ
{
"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_id | integer | شناسه پست |
پارامترهای پرسوجو
| پارامتر | نوع | توضیحات |
|---|---|---|
| includes | string | موجودیتهای مرتبط برای گنجاندن در پاسخ (مثلاً category,tags,author) |
پاسخ
مشابه پاسخ برای بهروزرسانی پست است.
حذف پست (انتقال به سطل زباله)
انتقال یک پست به سطل زباله (حذف نرم).
درخواست
DELETE /api/admin/v3/cms/post/{post_id}/trash HTTP/1.1
Api-Key: {{api-key}}
پارامترهای مسیر
| پارامتر | نوع | توضیحات |
|---|---|---|
| post_id | integer | شناسه پست |
پاسخ
{
"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_id | integer | شناسه پست |
پاسخ
{
"status": true,
"result": {
"message": "Post deleted permanently"
}
}
بازیابی پست از سطل زباله
بازیابی یک پست از سطل زباله.
درخواست
POST /api/admin/v3/cms/post/{post_id}/restore HTTP/1.1
Api-Key: {{api-key}}
پارامترهای مسیر
| پارامتر | نوع | توضیحات |
|---|---|---|
| post_id | integer | شناسه پست |
پاسخ
{
"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"
}
}