🔹 เกริ่นนำ
Laravel ช่วยให้การพัฒนา RESTful API ง่ายและเป็นระบบด้วยการใช้ Resource Controller ซึ่งเตรียม method สำหรับ CRUD ไว้ให้ครบถ้วนใน controller เดียว เช่น index
, store
, show
, update
, destroy
เหมาะสำหรับสร้าง API ที่เกี่ยวข้องกับ resource ต่าง ๆ เช่นโพสต์, ผู้ใช้, สินค้า
บทนี้จะแนะนำการสร้าง API Resource Controller ด้วย Artisan และวิธีเชื่อมต่อกับ Route อย่างเหมาะสม
🔸 คำสั่งสร้าง Controller แบบ Resource สำหรับ API
php artisan make:controller Api/PostController --api
- จะได้ไฟล์
app/Http/Controllers/Api/PostController.php
- มี method ที่ใช้สำหรับ API:
index
,store
,show
,update
,destroy
🔸 ตัวอย่าง Controller ที่ใช้งานได้จริง
use App\Models\Post;
use Illuminate\Http\Request;
class PostController extends Controller
{
public function index()
{
return response()->json(Post::all());
}
public function store(Request $request)
{
$post = Post::create($request->only(['title', 'content']));
return response()->json($post, 201);
}
public function show($id)
{
$post = Post::findOrFail($id);
return response()->json($post);
}
public function update(Request $request, $id)
{
$post = Post::findOrFail($id);
$post->update($request->only(['title', 'content']));
return response()->json($post);
}
public function destroy($id)
{
Post::destroy($id);
return response()->json(['message' => 'Deleted']);
}
}
🔸 การเชื่อมต่อกับ Route
// routes/api.php
Route::apiResource('posts', App\Http\Controllers\Api\PostController::class);
💡 ใช้
--api
แทน--resource
เพื่อไม่สร้าง method ที่ใช้เฉพาะ web เช่นcreate
,edit