🔹 เกริ่นนำ
Laravel แยกการกำหนด Route สำหรับ API ออกจากเว็บโดยเฉพาะไว้ที่ routes/api.php
ซึ่งช่วยให้การจัดการ route สำหรับ API เป็นระเบียบมากขึ้น และ Laravel ยังตั้งค่า middleware api
ให้โดยอัตโนมัติเพื่อรองรับลักษณะเฉพาะของ API เช่น การไม่ใช้ session, cookie และ CSRF
บทนี้จะอธิบายการใช้งาน API Route ทั้งแบบทั่วไป, แบบ resource และการจัดกลุ่ม route (Route Group) เพื่อความยืดหยุ่นในการจัดการเวอร์ชันและ middleware
🔸 ไฟล์ routes/api.php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\Api\UserController;
Route::get('/users', [UserController::class, 'index']);
Route::get('/users/{id}', [UserController::class, 'show']);
🔸 การใช้งาน Route Resource สำหรับ CRUD
Route::apiResource('posts', App\Http\Controllers\Api\PostController::class);
จะสร้าง route ทั้งหมดตามมาตรฐาน REST: index, store, show, update, destroy
🔸 การจัดกลุ่ม Route (API Versioning)
Route::prefix('v1')->group(function () {
Route::get('/users', [UserController::class, 'index']);
});
🔸 การกำหนด Middleware เฉพาะ
Route::middleware('auth:sanctum')->group(function () {
Route::get('/profile', [UserController::class, 'profile']);
});
💡 API Route ไม่มี web middleware เช่น session และ CSRF โดย default ทำให้เหมาะกับ RESTful โดยแท้จริง