CRUD REST API Lengkap
Penjelasan
REST API CRUD lengkap di Spring Boot menggabungkan SEMUA layer: Controller (HTTP), Service (logika bisnis), Repository (akses data lewat JpaRepository), dan @Valid untuk validasi — pola berlapis ketat ini yang membuat project Spring Boot besar tetap terorganisir meski jumlah kode-nya banyak.
Contoh Konsep
@RestController
@RequestMapping("/produk")
public class ProdukController {
private final ProdukService produkService;
public ProdukController(ProdukService produkService) {
this.produkService = produkService;
}
@GetMapping
public List<Produk> findAll() {
return produkService.ambilSemua();
}
@PostMapping
public ResponseEntity<Produk> create(@Valid @RequestBody Produk produk) {
return ResponseEntity.status(HttpStatus.CREATED).body(produkService.simpan(produk));
}
@DeleteMapping("/{id}")
public ResponseEntity<Void> delete(@PathVariable Long id) {
produkService.hapus(id);
return ResponseEntity.noContent().build();
}
}
Praktikum
Lengkapi ArtikelController (dengan @RequestMapping("/artikel")) dengan method findAll() (GET, delegasikan ke artikelService), create(@Valid @RequestBody Artikel artikel) (POST, respons 201), dan delete(@PathVariable Long id) (DELETE, respons 204).
Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.
Tips
@RequestMapping("/produk") di level CLASS menentukan PREFIX bersama untuk semua endpoint di dalamnya — @GetMapping/@PostMapping tanpa argumen path di dalam class ini otomatis mengikuti prefix itu, mis. @GetMapping saja (tanpa path) berarti GET /produk.