Validasi dengan DataAnnotations
Penjelasan
DataAnnotations menambahkan atribut validasi langsung di properti class ([Required], [StringLength], [Range], [EmailAddress], dst). Kalau Controller ditandai [ApiController] (konvensi standar), ASP.NET Core OTOMATIS memvalidasi dan merespons 400 Bad Request kalau ada pelanggaran, TANPA kamu perlu cek ModelState.IsValid secara manual.
Contoh Konsep
public class CreateProdukRequest
{
[Required(ErrorMessage = "Nama wajib diisi")]
[StringLength(100, MinimumLength = 3)]
public string Nama { get; set; } = "";
[Range(0, double.MaxValue, ErrorMessage = "Harga tidak boleh negatif")]
public decimal Harga { get; set; }
}
[HttpPost]
public IActionResult Create([FromBody] CreateProdukRequest request)
{
// [ApiController] otomatis validasi SEBELUM method ini dieksekusi
return Ok($"Produk {request.Nama} tersimpan");
}
Praktikum
Tambahkan atribut validasi ke CreateArtikelRequest: Judul wajib string dengan panjang minimal 5 karakter ([Required], [StringLength] dengan MinimumLength), Isi wajib diisi ([Required]).
Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.
Tips
Validasi otomatis ini HANYA berlaku untuk Controller ber-atribut [ApiController] — kalau kamu memakai Minimal API (app.MapPost), validasi DataAnnotations TIDAK otomatis berjalan, kamu perlu memanggil validasi manual atau memakai library tambahan seperti FluentValidation.