Study
Spring Boot

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

Editor Latihan

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.