Langsung ke konten utama

Panduan Praktis Membuat Custom Middleware Validasi di Laravel

Pendahuluan

Pernah nggak kepikiran, kenapa Laravel terasa sangat nyaman dipakai padahal kita sering terjebak validasi data yang berulang-ulang di tiap controller? Biasanya saat ngerjain API, saya sering banget males nulis logika validasi yang sama di lima method berbeda, sampai akhirnya saya sadar kalau Middleware adalah kunci biar kode kita tetap bersih dan nggak bikin pusing di masa depan.

Tips & Best Practices

  • Di banyak project, saya selalu buat satu middleware khusus untuk satu tanggung jawab; jangan mencampur urusan auth, logging, dan validasi dalam satu file biar proses debugging nggak kayak nyari jarum dalam jerami.
  • Saat nentuin nama middleware, saya saranin pakai nama yang deskriptif berdasarkan aksi, misalnya EnsureDataIsValid, supaya rekan tim lain nggak perlu buka isi kodenya buat tahu fungsinya.
  • Saya terbiasa memisahkan logic validasi ke dalam FormRequest jika validasinya kompleks, dan pakai middleware hanya sebagai gatekeeper untuk request yang datang dari luar.

Contoh Kode

Bayangin kita mau validasi input API key biar nggak bocor ke sistem. Saya biasanya buat middleware lewat php artisan make:middleware CheckApiKey:

public function handle(Request $request, Closure $next) { if ($request->header('X-API-KEY') !== config('app.api_key')) { return response()->json(['message' => 'Unauthorized'], 403); } return $next($request); }

Variasi Implementasi

Kita punya dua pilihan: pakai middleware untuk validasi ketat di level request, atau pakai FormRequest yang lebih natural buat validasi data form. Kalau middleware, saya pakai buat ngecek 'siapa' yang akses, sedangkan FormRequest lebih ke 'apa' isi datanya. Pakai middleware terlalu dalam buat validasi field itu kadang malah bikin kode jadi susah dites.

Kesalahan Umum

  • Lupa daftarin middleware di file app/Http/Kernel.php atau bootstrap/app.php yang sering bikin kita bingung kenapa kodenya nggak jalan-jalan.
  • Terlalu banyak logic bisnis di dalam middleware yang malah bikin aplikasi terasa berat setiap kali hit endpoint.
  • Mengembalikan respons redirect() di middleware yang harusnya dipakai buat API, alhasil user malah dapat error HTML aneh.
  • Tidak menangani $request->expectsJson(), sehingga user yang akses via browser malah dikasih tampilan error polos.
  • Membuat middleware yang menahan request terlalu lama karena query database yang kompleks di dalamnya.

Ringkasan

Pada akhirnya, custom middleware itu bukan cuma soal rapi-rapi kode, tapi soal gimana kita ngebangun 'penjaga' yang efisien buat aplikasi kita. Kalau sudah paham polanya, nambahin fitur validasi atau security di tengah jalan jadi jauh lebih santai tanpa harus ngerombak banyak file controller.

Komentar

Postingan populer dari blog ini

Fungsi lain tombol penerima panggilan di headset

Kegunaan tombol yang berada di headset utamanya adalah untuk menerima panggilan dan pause panggilan. Dan headset itu sendiri, kadang juga digunakan untuk mendengarkan music, digunakan bersama saat main game, supaya suara yang dikeluarkan oleh gadget tidak terlalu keras sehingga mengurangi beban gadget. Dengan mengurangi beban gadget, ada beberapa yang beranggapan kalau itu akan menghemat batere.

Cara Reset Password Database MySQL Menggunakan Laragon

Cara Reset Password Database MySQL Menggunakan Laragon Laragon adalah salah satu lingkungan pengembangan lokal (local development environment) yang populer di antara para pengembang web. Dalam beberapa kasus, mungkin kita perlu mereset password database MySQL pada Laragon jika lupa password atau untuk alasan keamanan tertentu. Berikut adalah langkah-langkah yang dapat kita ikuti untuk melakukan reset password database MySQL menggunakan Laragon:

Apa Itu R dan L di Headset? Ini Dia Perbedaan dan Fungsinya yang Perlu Anda Ketahui

Arti R dan L di Headset: Apa Perbedaannya? Headset adalah alat yang digunakan untuk mendengarkan suara dari sumber audio seperti ponsel, komputer, atau pemutar musik. Headset biasanya terdiri dari dua bagian, yaitu earphone yang dimasukkan ke dalam telinga dan mikrofon yang digunakan untuk berbicara. Pada earphone, kita sering melihat ada tulisan R dan L. Apa arti dan perbedaan dari kedua huruf tersebut?