Dev to webs {Coding…}

ร บทเรียนฟรีด้านการพัฒนาซอฟต์แวร์ ที่ครอบคลุมเนื้อหาหลากหลาย ตั้งแต่การเขียนโค้ดพื้นฐานไปจนถึงเทคนิคขั้นสูง

บทที่ 4: การสร้าง API Resource Controller

🔹 เกริ่นนำ

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