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).
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.