REST API telah menjadi standar dalam pengembangan aplikasi modern. Laravel 10, sebagai framework PHP terpopuler, menyediakan tools yang powerful untuk membuat REST API dengan mudah dan cepat. Mari kita pelajari cara membuatnya step by step!
Prasyarat
- PHP 8.1 atau lebih tinggi
- Composer terinstall
- MySQL atau database lainnya
- Text editor (VS Code recommended)
- Postman untuk testing API
1. Instalasi Laravel 10
Pertama, buat project Laravel baru dengan menjalankan perintah berikut di terminal:
composer create-project laravel/laravel rest-api-demo
Setelah selesai, masuk ke direktori project:
cd rest-api-demo
2. Konfigurasi Database
Buka file .env dan sesuaikan konfigurasi database:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=rest_api_demo
DB_USERNAME=root
DB_PASSWORD=
3. Membuat Model dan Migration
Kita akan membuat API untuk mengelola data produk. Jalankan perintah artisan berikut:
php artisan make:model Product -m
Edit file migration yang baru dibuat di database/migrations:
public function up()
{
Schema::create('products', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->text('description');
$table->decimal('price', 10, 2);
$table->integer('stock');
$table->timestamps();
});
}
Jalankan migration:
php artisan migrate
4. Membuat Controller
Buat API Controller dengan perintah:
php artisan make:controller API/ProductController --api
Edit 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()
{
$products = Product::all();
return response()->json([
'success' => true,
'data' => $products
]);
}
public function store(Request $request)
{
$validated = $request->validate([
'name' => 'required|max:255',
'description' => 'required',
'price' => 'required|numeric',
'stock' => 'required|integer'
]);
$product = Product::create($validated);
return response()->json([
'success' => true,
'data' => $product
], 201);
}
public function show($id)
{
$product = Product::findOrFail($id);
return response()->json([
'success' => true,
'data' => $product
]);
}
public function update(Request $request, $id)
{
$product = Product::findOrFail($id);
$validated = $request->validate([
'name' => 'required|max:255',
'description' => 'required',
'price' => 'required|numeric',
'stock' => 'required|integer'
]);
$product->update($validated);
return response()->json([
'success' => true,
'data' => $product
]);
}
public function destroy($id)
{
$product = Product::findOrFail($id);
$product->delete();
return response()->json([
'success' => true,
'message' => 'Product deleted successfully'
]);
}
}
5. Menambahkan Routes
Edit routes/api.php untuk menambahkan endpoint API:
use App\Http\Controllers\API\ProductController;
Route::apiResource('products', ProductController::class);
6. Testing API
Jalankan server Laravel:
php artisan serve
Endpoint API yang tersedia:
- GET /api/products - Mendapatkan semua produk
- POST /api/products - Membuat produk baru
- GET /api/products/{id} - Mendapatkan detail produk
- PUT /api/products/{id} - Update produk
- DELETE /api/products/{id} - Hapus produk
Tips Testing dengan Postman
- Gunakan header Accept: application/json
- Untuk POST/PUT, gunakan Content-Type: application/json
- Body request menggunakan format JSON
7. Menambahkan Autentikasi (Opsional)
Untuk menambahkan autentikasi, install Laravel Sanctum:
composer require laravel/sanctum
Publish konfigurasi Sanctum:
php artisan vendor:publish --provider="Laravel\Sanctum\SanctumServiceProvider"
8. Error Handling
Laravel menyediakan error handling bawaan, tapi kita bisa customize dengan membuat ExceptionHandler:
namespace App\Exceptions;
use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;
use Throwable;
class Handler extends ExceptionHandler
{
public function render($request, Throwable $exception)
{
if ($request->expectsJson()) {
return response()->json([
'success' => false,
'message' => $exception->getMessage()
], 500);
}
return parent::render($request, $exception);
}
}
9. API Documentation
Untuk dokumentasi API, bisa menggunakan tools seperti:
- Swagger/OpenAPI
- Scribe
- API Blueprint
Best Practices
- Gunakan versioning untuk API (/api/v1/products)
- Implementasikan rate limiting
- Selalu validasi input
- Gunakan proper HTTP status codes
- Implementasikan caching jika diperlukan
Kesimpulan
Membuat REST API dengan Laravel 10 sangat mudah dan straightforward. Framework ini menyediakan semua tools yang dibutuhkan untuk membuat API yang robust dan scalable. Dengan mengikuti tutorial ini, Anda sudah memiliki dasar yang kuat untuk mengembangkan API lebih lanjut sesuai kebutuhan project.
Seperti halnya API yang perlu dimonitor performanya, domain website Anda juga perlu dimonitor masa aktifnya. Untuk informasi lengkap tentang monitoring domain expired, list domain expired, dan marketplace domain terpercaya, kunjungi Back.co.id.