Validation Utility di Elysia-Light
Elysia-Light menyediakan utility validation ringan untuk memvalidasi request body secara eksplisit dan konsisten. Validation ini terinspirasi dari gaya rule-based seperti Laravel, namun tetap sederhana dan mudah dilacak karena tidak menyembunyikan alur eksekusi.
Konsep Dasar Validation
Validation bekerja dengan mendefinisikan rules berbasis string untuk setiap field. Setiap rule akan dieksekusi berurutan dan mengumpulkan error jika terjadi pelanggaran. Jika validation gagal, controller dapat langsung menghentikan request dengan response 422.
Penggunaan di Controller
Validation umumnya dipanggil di awal handler controller menggunakan helper c.validation. Jika validation tidak valid, request akan otomatis dihentikan.
Kode berhasil di copy!
5
Penggunaan Dengan Type-Safety
Gunakan bentuk array untuk mendapatkan Type-Safety di rules validation.
Kode berhasil di copy!
5
Penggunaan Model Type-Safety
Agar field Type-Safety dengan field yang di definisikan model.
Kode berhasil di copy!
5
Daftar Rule yang Tersedia
- required — Field wajib diisi
- string — Harus berupa string
- numeric — Harus berupa angka
- boolean — Boolean true/false
- email — Email valid
- url — URL valid
- date — Format tanggal valid
- min — Minimal panjang nilai
- max — Maksimal panjang nilai
- between — Panjang nilai di antara rentang
- in — Harus salah satu dari daftar
- not_in — Tidak boleh termasuk daftar
- confirmed — Cocok dengan field *_confirmation
- same — Harus sama dengan field lain
- different — Harus berbeda dengan field lain
- regex — Cocok dengan pola regex
- unique — Unik di database
- exists — Harus ada di database
Contoh Rule Database
Validation mendukung pengecekan langsung ke database untuk memastikan keunikan atau keberadaan data.
Kode berhasil di copy!
5
Nested Field Validation
Validation mendukung nested object menggunakan notasi dot atau bracket notasi. Ini berguna untuk payload JSON yang kompleks.
Kode berhasil di copy!
5
Format Error Validation
Jika validation gagal, error akan dikembalikan dalam bentuk object dengan key field dan array pesan error.
Kode berhasil di copy!
5
Best Practice
Validation di controller jika field tidak terlalu banyak, pisahkan rules di service jika field sudah terlalu banyak. Gunakan rule database dengan bijak karena memicu query tambahan. Validation ini dirancang eksplisit dan mudah dibaca, bukan untuk menutupi logic kompleks.