-
Membuat Proyek Laravel Baru
Jalankan perintah di terminal:
laravel new laravel-spa-api
-
Menjalankan Server Laravel
Masuk ke folder proyek dan jalankan:
cd laravel-spa-api
php artisan serve
Server berjalan di
http://localhost:8000
secara default.
-
Membuat Model dan Migrasi
Contoh membuat model Product dengan migrasi:
php artisan make:model Product -m
Edit file migrasi di
database/migrations/xxxx_xx_xx_create_products_table.php
:
public function up()
{
Schema::create('products', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->decimal('price', 15, 2);
$table->timestamps();
});
}
Jalankan migrasi:
php artisan migrate
-
Membuat Controller API
Buat controller resource:
php artisan make:controller Api/ProductController --api
Edit
app/Http/Controllers/Api/ProductController.php
:
namespace App\Http\Controllers\Api;
use App\Http\Controllers\Controller;
use App\Models\Product;
use Illuminate\Http\Request;
class ProductController extends Controller
{
public function index()
{
return Product::all();
}
public function store(Request $request)
{
$validated = $request->validate([
'name' => 'required|string|max:255',
'price' => 'required|numeric',
]);
$product = Product::create($validated);
return response()->json($product, 201);
}
public function show(Product $product)
{
return $product;
}
public function update(Request $request, Product $product)
{
$validated = $request->validate([
'name' => 'sometimes|required|string|max:255',
'price' => 'sometimes|required|numeric',
]);
$product->update($validated);
return response()->json($product);
}
public function destroy(Product $product)
{
$product->delete();
return response()->noContent();
}
}
-
Menambahkan Route API
Edit file
routes/api.php
:
use App\Http\Controllers\Api\ProductController;
Route::apiResource('products', ProductController::class);
-
Testing API
Gunakan Postman atau browser untuk mengakses endpoint:
http://localhost:8000/api/products
dan coba operasi CRUD.