Study
ASP.NET Core

CRUD REST API Lengkap

Penjelasan

REST API CRUD lengkap di ASP.NET Core memetakan operasi Create/Read/Update/Delete ke method HTTP standar, dikombinasikan dengan EF Core untuk persist data ke database — pola berlapis Controller-DbContext ini yang membuat project ASP.NET Core besar tetap terorganisir dan mudah dites.

Contoh Konsep

[ApiController]
[Route("api/[controller]")]
public class ProdukController : ControllerBase
{
    private readonly AppDbContext _context;

    public ProdukController(AppDbContext context) => _context = context;

    [HttpGet]
    public async Task<IActionResult> FindAll() => Ok(await _context.Produk.ToListAsync());

    [HttpPost]
    public async Task<IActionResult> Create(Produk produk)
    {
        _context.Produk.Add(produk);
        await _context.SaveChangesAsync();
        return CreatedAtAction(nameof(FindAll), new { id = produk.Id }, produk);
    }

    [HttpDelete("{id}")]
    public async Task<IActionResult> Delete(int id)
    {
        var produk = await _context.Produk.FindAsync(id);
        if (produk == null) return NotFound();

        _context.Produk.Remove(produk);
        await _context.SaveChangesAsync();
        return NoContent();
    }
}

Praktikum

Lengkapi ArtikelController dengan method FindAll() (GET, ambil semua dari _context.Artikel), Create(Artikel artikel) (POST, tambah + SaveChangesAsync), dan Delete(int id) (DELETE, cari dulu lewat FindAsync, NotFound() kalau tidak ada, hapus + SaveChangesAsync kalau ada).

Editor Latihan

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

Tips

SaveChangesAsync() WAJIB dipanggil setelah Add()/Remove()/perubahan Entity lainnya — EF Core hanya MENANDAI perubahan di memori saat Add()/Remove() dipanggil, perubahan itu baru benar-benar ditulis ke database saat SaveChangesAsync() dieksekusi, mirip pola persist()+flush() di Doctrine.