Nội dung
Danh sách bài học
- 01~4 phút
Request & Response — tổng quan
Module này mổ 2 chiều của HTTP: bind dữ liệu request vào method param, và dựng response (status, header, body, streaming).
- 02~12 phút
Request Binding — @PathVariable, @RequestParam, @RequestBody và cơ chế bên dưới
Bài này bóc đúng một thứ: 6 nguồn dữ liệu trong HTTP request, 6 annotation Spring tương ứng, và cơ chế HttpMessageConverter + HandlerMethodArgumentResolver biến chúng thành object Java. Tại sao mỗi annotation tồn tại, tại sao @RequestBody cần Jackson, và tại sao quên @Valid là lỗi thầm lặng.
- 03~13 phút
ArgumentResolver — chuỗi resolver, type conversion, custom annotation
Spring MVC resolve từng parameter method controller qua chuỗi HandlerMethodArgumentResolver. Bài này bóc cơ chế supportsParameter/resolveArgument, ConversionService cho type conversion (String→int, String→LocalDate, String→Enum), và cách tự viết custom resolver cho annotation @CurrentUser — giải thích tại sao thiết kế này mở rộng được và pitfall mass assignment.
- 04~12 phút
ResponseEntity & HTTP status — trả response đúng ngữ nghĩa REST
Ba cách trả response trong Spring MVC, ngữ nghĩa 5 nhóm status code HTTP (2xx/3xx/4xx/5xx), ResponseEntity builder pattern, và cơ chế HttpMessageConverter chuyển Java object thành JSON byte. Tại sao status code không phải decoration mà là REST contract.
- 05~14 phút
Response nâng cao — Streaming, ResponseBodyAdvice, HATEOAS, Production
Bài này bóc 4 kỹ thuật response nâng cao: StreamingResponseBody + SSE (stream không load hết memory), ResponseBodyAdvice (wrap đồng nhất global), HATEOAS link relations (discoverability), và production headers (caching ETag, gzip, security headers). Mỗi kỹ thuật giải thích cơ chế bên dưới và trade-off khi nào nên dùng.
- 06~4 phút
Request & Response — tổng kết
Tóm tắt Request & Response.