فصل چهارم: API، صف و استقرار

ساخت API با Resource

ساخت وب‌سرویس RESTful

لاراول ابزارهای قدرتمندی برای ساخت API دارد. اولین قدم، تعریف مسیرهای استاندارد CRUD در فایل routes/api.php با استفاده از Route::apiResource است که به‌طور خودکار هفت مسیر رایج (index، store، show، update، destroy و...) را می‌سازد:

Route::apiResource('posts', PostController::class);

مشکل رایج در بازگرداندن مستقیم Model به‌عنوان پاسخ JSON این است که ممکن است فیلدهای حساس یا غیرضروری (مانند رمز عبور هش‌شده) نیز فاش شوند. راه‌حل استاندارد لاراول برای این موضوع، استفاده از API Resource است:

php artisan make:resource PostResource
class PostResource extends JsonResource
{
    public function toArray($request)
    {
        return [
            'id'    => $this->id,
            'title' => $this->title,
            'author' => $this->user->name,
            'created_at' => $this->created_at->toDateString(),
        ];
    }
}

سپس در Controller:

public function index()
{
    return PostResource::collection(Post::with('user')->get());
}

public function show(Post $post)
{
    return new PostResource($post);
}

این روش کنترل کاملی روی ساختار خروجی JSON به شما می‌دهد و باعث می‌شود تغییرات ساختار دیتابیس، مستقیماً روی قرارداد API تأثیر نگذارد. برای احراز هویت API معمولاً از پکیج Laravel Sanctum استفاده می‌شود که بر پایه‌ی توکن کار می‌کند.

برای ذخیره‌ی پیشرفت و شرکت در آزمون، وارد شوید — رایگان است.