Skip to main content
#P1729

GET /v2/comments

Comments: List & Filter

این اندپوینت برای دریافت لیستی از نظرات (Comments) با قابلیت‌های فیلترینگ و مرتب‌سازی پیشرفته طراحی شده است.
این پیاده‌سازی از Eloquent ORM و API Resources لاراول بهره می‌برد و نتایج را به صورت صفحه‌بندی شده (15 آیتم در هر صفحه) بازمی‌گرداند.


List All Comments

URL: /v2/comments
Method: 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
    }
}