Response Types: IActionResult & ActionResult<T>
Penjelasan
Controller ASP.NET Core menyediakan method bawaan untuk response umum: Ok() (200), NotFound() (404), BadRequest() (400), CreatedAtAction() (201 dengan header Location), NoContent() (204). ActionResult<T> memungkinkan return TIPE DATA langsung (mis. return produk;) SEKALIGUS tetap bisa return Ok()/NotFound() di baris lain method yang sama.
Contoh Konsep
[HttpGet("{id}")]
public async Task<ActionResult<Produk>> FindOne(int id)
{
var produk = await _context.Produk.FindAsync(id);
if (produk == null)
{
return NotFound(new { error = "Produk tidak ditemukan" });
}
return produk; // otomatis dibungkus jadi 200 OK berkat ActionResult<T>
}
Praktikum
Buat method FindOne(int id) bertipe Task<ActionResult<Artikel>> yang mengembalikan NotFound() dengan pesan kalau data tidak ditemukan, atau langsung mengembalikan objek artikel-nya kalau ditemukan.
Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.
Tips
ActionResult<T> lebih disukai dibanding IActionResult polos untuk endpoint yang biasanya mengembalikan data sukses — Swagger/OpenAPI bisa membaca tipe generic-nya (mis. ActionResult<Produk>) untuk menghasilkan dokumentasi API yang lebih akurat soal bentuk response-nya, sesuatu yang tidak bisa dilakukan dari IActionResult polos.