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.