Skip to main content
#P1812

GET /b2c/v1/articles/{article}

GET /b2c/v1/articles/{article}

این اندپوینت برای مشاهده جزئیات یک مقاله خاص در سامانه‌ی B2C طراحی شده است. ورودی شامل شناسه یا slug مقاله است که به‌صورت Model Binding لاراول به Article تبدیل می‌شود. نتیجه در قالب ArticleResource بازگردانده می‌شود تا داده‌ها به شکل استاندارد JSON ارائه شود.


Endpoint Information

URL: /b2c/v1/articles/{article}
Method: GET
Controller: V1ArticleController@show
Middleware: web (بدون JWT)
Model: Article
Resource: ArticleResource

پارامترهای مسیر (Path Parameters)

نام نوع الزامی توضیح
article integer|string شناسه عددی یا slug مقاله؛ به‌صورت خودکار در لاراول از طریق Route Model Binding واکشی می‌شود.

منطق اجرای متد (Flow Logic)

📥 ۱. دریافت پارامتر مسیر {article} و Resolve به مدل Article توسط لاراول.
🧩 ۲. بسته‌بندی داده مقاله در قالب ArticleResource برای تبدیل فیلدها به JSON ساخت‌یافته.
✅ ۳. بازگرداندن پاسخ JSON شامل داده، وضعیت موفق و زمان فراخوانی.

پاسخ موفق (Success Response)

{
  "status": true,
  "time": 1733802321,
  "data": {
    "id": 245,
    "title": "راهنمای سفر به تبریز",
    "excerpt": "بررسی بهترین جاذبه‌های گردشگری …",
    "body": "

در این مقاله به بررسی مکان‌های دیدنی ...

",
    "cover": "https://cdn.site.com/uploads/articles/245.jpg",
    "views": 537,
    "score": 4.6,
    "categories": [1, 5],
    "tags": [12, 33, 70],
    "places": [18],
    "created_at": "2025-11-29T08:00:00Z",
    "updated_at": "2025-12-05T14:10:00Z"
  }
}

خطاهای احتمالی

کد وضعیت شرط وقوع توضیح
404 هنگامی که شناسه‌ی مقاله در پایگاه داده یافت نشود. پاسخ پیش‌فرض خطای ModelNotFound

📘 توضیحات اجرایی برای توسعه‌دهنده (Dev Notes)

  • Binding اتوماتیک لاراول ارجاع {article} را بر اساس route parameter انجام می‌دهد—درصورت داشتن ستون slug می‌توان آن را در مدل Article::getRouteKeyName() تعریف کرد.
  • Resource در اینجا می‌تواند شامل روابط author، comments یا متادیتا باشد، بسته به پیاده‌سازی ArticleResource.
  • پارامتر time برای نمایش زمان پاسخ API (به‌صورت Unix timestamp) افزوده شده است.