"Pernah nggak, frontend React kamu gagal ambil data dari backend Laravel? Atau Postman cuma muter-muter nggak dapet respon? Tenang, kamu nggak sendirian! Banyak pemula Laravel ngalamin hal yang sama. Di sinilah API Laravel jadi penyelamat."
Ketika kamu bikin frontend React dan backend Laravel, tapi data nggak tampil karena API belum siap — itu frustrasi banget. Nah, artikel ini kasih solusi lengkapnya biar kamu nggak pusing lagi!
Kenapa API itu Penting?
- API itu jembatan antara frontend dan backend
- Wajib untuk Single Page Application (SPA) & mobile app
- Tanpa API, data nggak bisa ditampilkan ke user
Contoh API Laravel: CRUD Artikel
Di artikel ini, kita bakal bikin API Artikel (CRUD) pakai Laravel. Simpel, tapi bener-bener kepake buat blog, news, atau project latihan.
Alur Kerja API Laravel
Sebelum ngoding, pahami dulu alurnya:
Client (Postman / Frontend)
→ Request HTTP
→ Route API
→ Controller
→ Model
→ Database
→ Response JSON
Jadi, setiap kali client minta data, request-nya lewat route, diproses controller, ambil data dari model/database, lalu balikin response JSON.
Step 1: Setup Project Laravel
- Laravel versi terbaru (misal 10.x)
- Pastikan Composer sudah terinstal
composer create-project --prefer-dist laravel/laravel belajar-api
Setting database di .env:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=belajar_api
DB_USERNAME=root
DB_PASSWORD=
Step 2: Buat Model & Migration Artikel
Kenapa pakai -m?
-motomatis bikin migration file, jadi nggak perlu bikin manual.
php artisan make:model Article -m
Edit migration di database/migrations/..._create_articles_table.php:
public function up()
{
Schema::create('articles', function (Blueprint $table) {
$table->id();
$table->string('title');
$table->text('content');
$table->timestamps();
});
}
Jalankan migrasi:
php artisan migrate
Pentingnya $fillable
Di model Article.php tambahkan:
protected $fillable = ['title', 'content'];
Kenapa harus diisi?
Kalau tidak diisi, Laravel tidak bisa menyimpan data karena proteksi mass assignment. Ini fitur keamanan agar data yang masuk ke database benar-benar sesuai yang diizinkan.
Step 3: Membuat Controller API Artikel
Bikin controller resource:
php artisan make:controller Api/ArticleController --resource
Penjelasan fungsi-fungsi utama:
-
index()→ Ambil semua artikel dari database, balikin dalam bentuk JSON. -
store()→ Simpan artikel baru. Biasanya ambil data dari request, validasi, lalu simpan. -
show($id)→ Ambil detail artikel berdasarkan ID. -
update($id)→ Ubah data artikel tertentu. -
destroy($id)→ Hapus artikel.
Contoh implementasi (singkat):
public function index() {
return Article::all();
}
public function store(Request $request) {
// Validasi dulu
$validated = $request->validate([
'title' => 'required',
'content' => 'required',
]);
// Simpan data
$article = Article::create($validated);
return response()->json($article, 201);
}
public function show($id) {
return Article::findOrFail($id);
}
public function update(Request $request, $id) {
$article = Article::findOrFail($id);
$article->update($request->all());
return response()->json($article);
}
public function destroy($id) {
Article::destroy($id);
return response()->json(null, 204);
}
Step 4: Menambahkan Route API
Edit routes/api.php:
Route::apiResource('articles', App\Http\Controllers\Api\ArticleController::class);
Cara Testing API dengan Postman
Cek endpoint pakai Postman/curl:
| Method | Endpoint | Fungsi | Contoh Request | Contoh Response |
|---|---|---|---|---|
| GET | /api/articles | List semua artikel | - | [ {...} ] |
| POST | /api/articles | Simpan artikel baru | { "title": "Belajar Laravel API", "content": "Tutorial lengkap & mudah!" } |
{ "id": 1, ... } |
| GET | /api/articles/{id} | Detail artikel | - | { "id": 1, ... } |
| PUT | /api/articles/{id} | Update artikel | { "title": "Update", "content": "Edit konten" } |
{ "id": 1, ... } |
| DELETE | /api/articles/{id} | Hapus artikel | - | null |
Contoh Lengkap Request & Response
Request POST:
POST /api/articles
Content-Type: application/json
{
"title": "Belajar Laravel API",
"content": "Tutorial lengkap & mudah!"
}
Response 201 Created:
{
"id": 1,
"title": "Belajar Laravel API",
"content": "Tutorial lengkap & mudah!",
"created_at": "2026-01-10"
}
Request GET:
GET /api/articles/1
Response 200 OK:
{
"id": 1,
"title": "Belajar Laravel API",
"content": "Tutorial lengkap & mudah!",
"created_at": "2026-01-10"
}
Request PUT:
PUT /api/articles/1
Content-Type: application/json
{
"title": "Update Judul",
"content": "Konten sudah diupdate!"
}
Response 200 OK:
{
"id": 1,
"title": "Update Judul",
"content": "Konten sudah diupdate!",
"created_at": "2026-01-10"
}
Request DELETE:
DELETE /api/articles/1
Response 204 No Content:
null
Error Handling & Status Code di Laravel
Laravel otomatis mengirim status code sesuai aksi:
- 200 OK: Data berhasil diambil/diupdate
- 201 Created: Data berhasil dibuat
- 204 No Content: Data berhasil dihapus
- 404 Not Found: Data tidak ditemukan
- 422 Unprocessable Entity: Validasi gagal
- 500 Internal Server Error: Error server
Contoh error response:
{
"message": "No query results for model [App\\Models\\Article] 99"
}
Tips: Gunakan findOrFail() untuk otomatis dapat response 404 jika data tidak ditemukan.
Common Mistake Pemula
"Kesalahan umum pemula waktu bikin API Laravel:"
- Lupa nambah
$fillabledi model, jadi data nggak bisa disimpan. - Pakai method GET buat simpan data (harusnya POST).
- Nggak validasi input, data jadi berantakan.
- Langsung expose semua field tanpa filter.
- Salah setup
.env(database, port, user/password) - Menjalankan route di
web.phpbukan diapi.php - Lupa restart server setelah ubah konfigurasi
Tips: Selalu cek error di response, pastikan method & field sudah benar, dan cek konfigurasi environment!
Next Step: Level Up API-mu!
Jangan berhenti di CRUD. Coba explore:
- Sanctum / Auth: Biar API kamu aman
- API Resource: Format response lebih rapi
- Pagination: Untuk data banyak
- Rate Limiting: Biar nggak di-spam
Tunggu artikel lanjutan ya!
🚀 Yuk Diskusi & Share!
Kalau kamu stuck di step tertentu, tulis di komentar ya! Share juga pengalaman kamu bikin API Laravel, atau request topik lanjutan (autentikasi, API resource, pagination, dll).
Jangan lupa follow & share artikel ini ke teman yang lagi belajar Laravel!
Struktur Ringkas
- Masalah yang sering dialami pemula
- Apa yang akan dibuat
- Alur kerja API Laravel
- Setup singkat
- CRUD API step by step
- Testing API
- Kesalahan umum
- Next step / lanjutan
Referensi:
Top comments (0)