Study
ASP.NET Core

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.

Editor Latihan

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.