ResponseEntity Deep Dive
ResponseEntity<T>, HTTP RESPONSE ka, FULL CONTROL DETA hai — STATUS CODE (200, 201, 404), HEADERS (CUSTOM HEADERS bhi ADD ki ja sakti hain), aur BODY — SAB, EXPLICITLY, SET kiye ja sakte hain. SIMPLE @GetMapping mein, SIRF OBJECT RETURN karne SE, DEFAULT 200 OK MILТА hai — LEKIN, PROPER REST SEMANTICS (201 for CREATE, 204 for DELETE) ke liye, ResponseEntity, ZAROORI hai.
ResponseEntity.ok(), ResponseEntity.status(HttpStatus.CREATED), ResponseEntity.noContent() jaise, CONVENIENT, STATIC METHODS, COMMON PATTERNS ke liye, AVAILABLE hain — MANUALLY, new ResponseEntity<>(...) LIKHNE ki, ZAROORAT KAM PADТI hai.
@PostMapping
public ResponseEntity<ProductDto> createProduct(@RequestBody @Valid ProductCreateDto dto) {
Product created = productService.create(dto);
URI location = URI.create("/api/products/" + created.getId());
return ResponseEntity.created(location).body(toDto(created)); // 201 + Location header
}
@GetMapping("/{id}")
public ResponseEntity<ProductDto> getProduct(@PathVariable Long id) {
return productService.findById(id)
.map(product -> ResponseEntity.ok(toDto(product))) // 200
.orElse(ResponseEntity.notFound().build()); // 404
}
@DeleteMapping("/{id}")
public ResponseEntity<Void> deleteProduct(@PathVariable Long id) {
productService.delete(id);
return ResponseEntity.noContent().build(); // 204, koi body nahi
}- ResponseEntity<T> = status code + headers + body, FULL control
- Static methods (ok(), created(), noContent()) = common patterns, CONCISE syntax
- created() = Location header, AUTOMATICALLY set hota hai
ResponseEntity.ok().header("X-Total-Count", "145").body(products) — CUSTOM HEADERS, RESPONSE mein, ADD kiye ja sakte hain, EXTRA METADATA (jaise, TOTAL COUNT, RATE LIMIT INFO) CLIENT ko, DENE ke liye, BINA, BODY STRUCTURE, MODIFY kiye.
return ResponseEntity.ok()
.header("X-Total-Count", String.valueOf(total))
.body(products);ResponseEntity<Void>, USE hota hai, JAB, RESPONSE mein, KOI, BODY NAHI CHAHIYE (jaise, DELETE OPERATIONS ke liye, 204 No Content) — Void, TYPE PARAMETER, EXPLICITLY, BATATA hai, KI, YE METHOD, INTENTIONALLY, KOI, DATA, RETURN NAHI karta.