Kuasi Laravel REST API: Panduan Lengkap untuk Pemula
Daftar Isi
1. Pengantar Laravel dan REST API
Laravel adalah salah satu framework PHP yang paling populer dan powerful untuk membangun aplikasi web modern. Dengan sintaks yang elegan dan fitur lengkap, Laravel memudahkan pengembang dalam membuat aplikasi yang scalable dan maintainable.
REST API (Representational State Transfer Application Programming Interface) adalah sebuah arsitektur yang memungkinkan aplikasi berkomunikasi satu sama lain melalui protokol HTTP. REST API banyak digunakan untuk membangun layanan backend yang dapat diakses oleh berbagai client seperti aplikasi mobile, web, dan lainnya.

2. Persiapan Lingkungan Pengembangan
Sebelum mulai membuat REST API dengan Laravel, pastikan Anda sudah menyiapkan lingkungan pengembangan berikut:
- PHP versi 8.0 atau lebih baru
- Composer sebagai dependency manager PHP
- Database MySQL atau PostgreSQL
- Editor kode seperti VS Code atau PHPStorm
- Postman untuk testing API
Untuk menginstal Laravel, jalankan perintah berikut di terminal:
composer create-project laravel/laravel nama-proyek

3. Struktur Proyek Laravel
Setelah membuat proyek Laravel, penting untuk memahami struktur foldernya:
-
app/
- Tempat kode aplikasi seperti Models, Controllers, dan lainnya -
routes/
- File routing aplikasi, sepertiweb.php
danapi.php
-
database/
- Migration dan seeder database -
config/
- Konfigurasi aplikasi -
public/
- File publik seperti gambar dan index.php

4. Membuat REST API dengan Laravel
Laravel menyediakan fitur API yang mudah digunakan. Kita akan membuat API sederhana untuk mengelola data buku.
Langkah pertama adalah membuat model dan migration untuk tabel buku:
php artisan make:model Book -m
Kemudian, buka file migration di
database/migrations/xxxx_xx_xx_create_books_table.php
dan tambahkan kolom berikut:
public function up()
{
Schema::create('books', function (Blueprint $table) {
$table->id();
$table->string('title');
$table->string('author');
$table->text('description')->nullable();
$table->timestamps();
});
}
Jalankan migration untuk membuat tabel:
php artisan migrate

5. Routing dan Controller
Selanjutnya, buat controller untuk API buku:
php artisan make:controller Api/BookController --api
Tambahkan routing API di
routes/api.php
:
use App\Http\Controllers\Api\BookController;
Route::apiResource('books', BookController::class);
Berikut contoh method
index
dan
store
di
BookController
:
namespace App\Http\Controllers\Api;
use App\Http\Controllers\Controller;
use App\Models\Book;
use Illuminate\Http\Request;
class BookController extends Controller
{
public function index()
{
return Book::all();
}
public function store(Request $request)
{
$book = Book::create($request->all());
return response()->json($book, 201);
}
}

6. Model dan Database Migration
Model
Book
harus mengizinkan pengisian massal (mass assignment) untuk kolom yang diizinkan. Tambahkan properti
$fillable
di
app/Models/Book.php
:
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Book extends Model
{
use HasFactory;
protected $fillable = [
'title',
'author',
'description',
];
}
Dengan ini, kita bisa menggunakan
Book::create()
untuk menyimpan data baru.

7. Validasi Data pada API
Penting untuk memvalidasi data yang masuk agar API tetap aman dan data valid. Contoh validasi pada method
store
:
public function store(Request $request)
{
$validated = $request->validate([
'title' => 'required|string|max:255',
'author' => 'required|string|max:255',
'description' => 'nullable|string',
]);
$book = Book::create($validated);
return response()->json($book, 201);
}
Jika validasi gagal, Laravel otomatis mengembalikan response error dengan status 422.

8. Autentikasi dan Otorisasi API
Untuk mengamankan API, Laravel menyediakan beberapa metode autentikasi seperti Sanctum dan Passport. Contoh menggunakan Laravel Sanctum:
-
Instalasi Sanctum:
composer require laravel/sanctum
-
Publikasi konfigurasi dan migration:
php artisan vendor:publish --provider="Laravel\Sanctum\SanctumServiceProvider"
-
Jalankan migration:
php artisan migrate
-
Tambahkan middleware
auth:sanctum
pada route API yang ingin diamankan
Contoh route dengan autentikasi:
Route::middleware('auth:sanctum')->apiResource('books', BookController::class);

9. Testing API dengan Postman dan PHPUnit
Setelah API dibuat, lakukan testing untuk memastikan semua berjalan dengan baik.
Testing dengan Postman
Gunakan Postman untuk mengirim request GET, POST, PUT, DELETE ke endpoint API dan lihat response-nya.

Testing dengan PHPUnit
Laravel juga mendukung testing otomatis menggunakan PHPUnit. Contoh test sederhana di
tests/Feature/BookTest.php
:
namespace Tests\Feature;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\TestCase;
use App\Models\Book;
class BookTest extends TestCase
{
use RefreshDatabase;
public function test_can_get_books()
{
Book::factory()->count(3)->create();
$response = $this->getJson('/api/books');
$response->assertStatus(200)
->assertJsonCount(3);
}
}

10. Penutup dan Langkah Selanjutnya
Selamat! Anda telah mempelajari dasar-dasar membuat REST API menggunakan Laravel. Langkah selanjutnya adalah memperdalam fitur-fitur Laravel seperti pagination, filtering, resource API, dan optimasi performa.
Jangan lupa untuk selalu menulis dokumentasi API dan menjaga keamanan aplikasi Anda.
