Appearance
🛠️ Workshop 1: Building Backend API
ใน Workshop นี้เราจะสร้าง REST API สำหรับระบบจัดการสินค้า "MyStore"
เป้าหมาย: ได้ API Endpoint สำหรับ:
- ดูรายการสินค้าทั้งหมด (GET)
- ดูรายละเอียดสินค้าทีละชิ้น (GET)
- เพิ่มสินค้าใหม่ (POST)
- แก้ไขสินค้า (PUT)
- ลบสินค้า (DELETE)
🏁 Step 1: สร้างโปรเจกต์ Laravel
เปิด Terminal แล้วรันคำสั่ง:
bash
# 1. สร้างโปรเจกต์ใหม่
composer create-project laravel/laravel:^10.0 my-store-api
# 2. เข้าสู่โฟลเดอร์
cd my-store-api
# 3. รัน Server (เช็คว่าทำงานได้)
php artisan serve🗄️ Step 2: ตั้งค่า Database
- เปิดโปรแกรมจัดการ Database (เช่น phpMyAdmin หรือ HeidiSQL)
- สร้าง Database ใหม่ชื่อ
my_store - เปิดไฟล์
.envในโปรเจกต์ แก้ไขส่วนนี้:
ini
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=my_store <-- แก้เป็นชื่อที่สร้าง
DB_USERNAME=root <-- username ของคุณ
DB_PASSWORD= <-- password ของคุณ🏗️ Step 3: สร้าง Model และ Migration
เราจะสร้างตาราง products
bash
php artisan make:model Product -mไปที่ไฟล์ database/migrations/xxxx_xx_xx_create_products_table.php แก้ไข function up:
php
public function up(): void
{
Schema::create('products', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->text('description')->nullable();
$table->decimal('price', 10, 2);
$table->integer('stock')->default(0);
$table->timestamps();
});
}รัน Migration เพื่อสร้างตารางจริง:
bash
php artisan migrate📝 Step 4: กำหนด Fillable ใน Model
ไปที่ app/Models/Product.php เพิ่มโค้ด:
php
protected $fillable = [
'name',
'description',
'price',
'stock'
];🎮 Step 5: สร้าง Controller
bash
php artisan make:controller ProductController --apiไปที่ app/Http/Controllers/ProductController.php ใส่ Logic CRUD:
php
use App\Models\Product; // อย่าลืม import
public function index()
{
return Product::all();
}
public function store(Request $request)
{
$request->validate([
'name' => 'required',
'price' => 'required|numeric'
]);
return Product::create($request->all());
}
public function show(string $id)
{
return Product::findOrFail($id);
}
public function update(Request $request, string $id)
{
$product = Product::findOrFail($id);
$product->update($request->all());
return $product;
}
public function destroy(string $id)
{
return Product::destroy($id);
}🛣️ Step 6: สร้าง Route
ไปที่ routes/api.php:
php
use App\Http\Controllers\ProductController;
Route::apiResource('products', ProductController::class);✅ Step 7: ทดสอบ API
(ใช้ Postman หรือ Thunder Client)
- GET
http://localhost:8000/api/products-> ควรได้[](ว่างเปล่า) - POST
http://localhost:8000/api/products-> Body (JSON):json-> ควรได้ Product กลับมา{ "name": "NoteBook", "price": 25000 }