#P1729
GET /v2/comments
Comments: List & Filter
این اندپوینت برای دریافت لیستی از نظرات (Comments) با قابلیتهای فیلترینگ و مرتبسازی پیشرفته طراحی شده است.
این پیادهسازی از Eloquent ORM و API Resources لاراول بهره میبرد و نتایج را به صورت صفحهبندی شده (15 آیتم در هر صفحه) بازمیگرداند.
List All Comments
URL:
/v2/commentsMethod: GET
Controller: CommentController@index
Query Parameters
این اندپوینت از پارامترهای زیر برای فیلتر و مرتبسازی پشتیبانی میکند:
| Parameter | Type | Description |
|---|---|---|
| operator_id | integer | فیلتر بر اساس شناسه اپراتور ثبتکننده نظر. |
| content_id | integer | فیلتر بر اساس شناسه محتوایی که نظر برای آن ثبت شده (مثلا شناسه مقاله). |
| category | string | فیلتر بر اساس دستهبندی محتوا (مثلا 'article', 'accommodation'). |
| branch | integer | فیلتر بر اساس شناسه شعبه. |
| status | integer | فیلتر بر اساس وضعیت نظر (مثلا تایید شده، در انتظار، رد شده). |
| flagged | integer | فیلتر نظراتی که علامتگذاری (Flag) شدهاند. (مثلا 1 برای فیلتر موارد علامتدار). |
| reply_to | integer | فیلتر برای نمایش پاسخهای یک نظر خاص (با ارسال ID نظر اصلی). |
| sortById | any | منطق مرتبسازی: - اگر این پارامتر در URL وجود داشته باشد (مثلا ?sortById=true)، نتایج بر اساس id به صورت نزولی (Desc) مرتب میشوند (جدیدترینها اول).- در غیر این صورت (پیشفرض)، نتایج به صورت صعودی (Asc) مرتب میشوند (قدیمیترینها اول). |
| page | integer | شماره صفحه برای صفحهبندی (مثلا ?page=2). |
Response Structure
خروجی این اندپوینت شامل آبجکتهای data (آرایهای از نظرات)، links (لینکهای صفحهبندی) و meta (اطلاعات متا صفحهبندی) است.
Response Example
{
"status": true,
"time": 1715000000,
"data": [
{
"id": 10,
"operatorId": 5,
"contentId": 152,
"category": "article",
"branch": 1,
"commentText": "مطلب بسیار مفیدی بود، ممنون.",
"status": "approved",
"isFlagged": false,
"replyTo": null,
"createdAt": "2024-10-22T14:30:00.000000Z"
}
],
"links": {
"first": "http://your.api/v2/comments?page=1",
"last": "http://your.api/v2/comments?page=5",
"prev": null,
"next": "http://your.api/v2/comments?page=2"
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 5,
"path": "http://your.api/v2/comments",
"per_page": 15,
"to": 15,
"total": 75
}
}