Response: ResponseEntity
Penjelasan
Mengembalikan tipe data biasa (seperti String di materi sebelumnya) SELALU menghasilkan status 200 OK — untuk mengatur status code lain (404, 201, dst) atau header custom, dipakai ResponseEntity<T>, dibungkus lewat method statis ResponseEntity.ok(), .notFound(), .status(kode).
Contoh Konsep
@GetMapping("/produk/{id}")
public ResponseEntity<String> show(@PathVariable int id) {
if (id == 999) {
return ResponseEntity.notFound().build();
}
return ResponseEntity.ok("Produk dengan id: " + id);
}
@PostMapping("/produk")
public ResponseEntity<CreateProdukRequest> store(@RequestBody CreateProdukRequest request) {
return ResponseEntity.status(HttpStatus.CREATED).body(request);
}
Praktikum
Buat method show(@PathVariable int id) bertipe ResponseEntity<String> yang mengembalikan ResponseEntity.notFound().build() kalau id == 999, atau ResponseEntity.ok(...) berisi pesan produk untuk id lainnya.
Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.
Tips
ResponseEntity.notFound().build() TIDAK PERLU .body(...) karena response 404 memang biasanya tidak butuh body — beda dengan .ok(data) atau .status(kode).body(data) yang WAJIB menyertakan body-nya, .build() adalah cara menyelesaikan builder ResponseEntity TANPA body.