Spring Boot controller scaffold
A minimal REST controller blueprint with validation, error mapping, and service delegation — ready to drop into any Spring Boot 3.x project.
@RestController
@RequestMapping("/api/v1/items")
@Validated
public class ItemController {
private final ItemService itemService;
public ItemController(ItemService itemService) {
this.itemService = itemService;
}
@GetMapping
public ResponseEntity<List<ItemDto>> getAll() {
return ResponseEntity.ok(itemService.findAll());
}
@GetMapping("/{id}")
public ResponseEntity<ItemDto> getById(
@PathVariable UUID id) {
return ResponseEntity.ok(itemService.findById(id));
}
@PostMapping
public ResponseEntity<ItemDto> create(
@Valid @RequestBody CreateItemRequest req) {
return ResponseEntity
.status(HttpStatus.CREATED)
.body(itemService.create(req));
}
@ExceptionHandler(MethodArgumentNotValidException.class)
public ResponseEntity<Map<String, String>> handleValidation(
MethodArgumentNotValidException ex) {
var errors = new HashMap<String, String>();
ex.getBindingResult().getFieldErrors()
.forEach(e -> errors.put(e.getField(),
e.getDefaultMessage()));
return ResponseEntity.badRequest().body(errors);
}
}Prerequisites
- Spring Boot 3.2+
- spring-boot-starter-validation
- Lombok (optional)
Next steps
- Wire up ItemService
- Add @ControllerAdvice for global errors
- Write integration tests with MockMvc