Study
ASP.NET Core

Model Binding: [FromBody], [FromQuery]

Penjelasan

ASP.NET Core otomatis menebak sumber data untuk parameter handler/action (disebut model binding), tapi bisa ditentukan eksplisit lewat atribut: [FromBody] (data JSON dari body request), [FromQuery] (query string), [FromRoute] (parameter path). Menentukan eksplisit membuat kode lebih jelas dan menghindari ambiguitas saat parameternya kompleks.

Contoh Konsep

public record CreateProdukRequest(string Nama, decimal Harga);

[HttpPost]
public IActionResult Create([FromBody] CreateProdukRequest request)
{
    return Ok($"Produk {request.Nama} dengan harga {request.Harga} berhasil dibuat");
}

[HttpGet]
public IActionResult Search([FromQuery] string q, [FromQuery] int page = 1)
{
    return Ok($"Mencari: {q}, halaman: {page}");
}

Praktikum

Buat record CreateArtikelRequest dengan Judul (string) dan Isi (string). Buat method Create([FromBody] CreateArtikelRequest request) yang mengembalikan Ok() dengan pesan konfirmasi berisi Judul yang dikirim.

Editor Latihan

Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.

Tips

record (dipakai untuk CreateProdukRequest) sangat cocok untuk DTO/request body — otomatis punya constructor, equality comparison, dan bersifat immutable secara default, jauh lebih ringkas dibanding class biasa dengan properti get/set manual untuk kebutuhan seperti ini.