Spring Boot/Spring Core & REST API/Xây dựng REST API với Spring Boot
2/2
~20 phútSpring Core & REST API

Xây dựng REST API với Spring Boot

Tạo REST API hoàn chỉnh: Controller, Service, Repository pattern. Request/Response lifecycle trong Spring.

Kiến trúc 3 lớp

Client Request
    ↓
┌─────────────────┐
│   Controller    │  ← Nhận request, validate input
│   (@RestController) │
└────────┬────────┘
         ↓
┌─────────────────┐
│    Service      │  ← Business logic
│   (@Service)    │
└────────┬────────┘
         ↓
┌─────────────────┐
│   Repository    │  ← Data access
│ (@Repository)   │
└─────────────────┘

Controller

@RestController
@RequestMapping("/api/users")
public class UserController {

    private final UserService userService;

    public UserController(UserService userService) {
        this.userService = userService;
    }

    @GetMapping
    public List<UserDTO> getAllUsers() {
        return userService.findAll();
    }

    @GetMapping("/{id}")
    public UserDTO getUser(@PathVariable Long id) {
        return userService.findById(id);
    }

    @PostMapping
    @ResponseStatus(HttpStatus.CREATED)
    public UserDTO createUser(@Valid @RequestBody CreateUserRequest request) {
        return userService.create(request);
    }
}

Request Lifecycle

HTTP Request → DispatcherServlet → HandlerMapping → Controller
     → Service → Repository → Database
     → Response Entity → JSON Serialization → HTTP Response

Key insight: @RestController = @Controller + @ResponseBody. Mọi return value tự động serialize thành JSON.