Nội dung
Danh sách bài học
- 01~4 phút
Error, Validation & API Docs — tổng quan
Module hoàn thiện REST API production: xử lý lỗi đồng nhất, validate input, và sinh docs OpenAPI.
- 02~14 phút
@RestControllerAdvice — tập trung xử lý exception cho toàn REST API
Mỗi controller tự catch exception = DRY violation và 5xx ẩn. Bài này giải thích 3 layer exception handling, cơ chế HandlerExceptionResolver, cách @RestControllerAdvice tập trung mapping domain exception → HTTP status, và khi nào nên dùng ResponseStatusException shortcut.
- 03~12 phút
Problem Details RFC 9457 — error response chuẩn hoá
RFC 9457 định nghĩa format JSON cho HTTP API error response với 5 trường chuẩn: type, title, status, detail, instance. Spring 6 có ProblemDetail native. Bài này giải thích tại sao cần chuẩn RFC, cách dùng ProblemDetail trong @RestControllerAdvice, nguyên tắc bảo mật không leak stack trace, và test exception handler.
- 04~12 phút
Jakarta Bean Validation & @Valid — declarative constraint trên DTO
Jakarta Bean Validation 3.0 (JSR 380): 23 built-in constraint, @Valid trigger và cascade nested object, @Valid vs @Validated — cơ chế AOP phía dưới, và tại sao declarative validation tách rule khỏi business logic.
- 05~13 phút
Validation nâng cao — Groups, Custom Constraint, i18n, Service Layer
Bài atomic đào sâu 4 cơ chế validation nâng cao của Jakarta Bean Validation: validation groups để tái dùng DTO cho nhiều ngữ cảnh (Create/Update), custom @Constraint để đóng gói rule domain, i18n message qua messages.properties, và validation trong service layer qua @Validated. Giải thích tại sao mỗi cơ chế tồn tại và khi nào dùng.
- 06~12 phút
OpenAPI & springdoc-openapi — auto-generate API doc từ controller
OpenAPI 3.1 là chuẩn JSON/YAML mô tả REST API contract. springdoc-openapi tự scan @RestController và sinh spec, expose Swagger UI tại /swagger-ui.html. Bài này giải thích cơ chế quét annotation, customize qua @Operation/@Schema, và global metadata — đặc biệt tại sao spec auto-generated là lựa chọn đúng.
- 07~14 phút
OpenAPI nâng cao — security scheme, GroupedOpenApi, ẩn endpoint, production deploy, API-first
Bài này đào sâu OpenAPI/springdoc nâng cao: khai báo security scheme JWT/OAuth2 trong spec để Swagger UI có nút Authorize, tách doc thành nhiều nhóm với GroupedOpenApi, ẩn endpoint nội bộ khỏi spec, chiến lược deploy production (tắt hay bảo vệ?), và phân tích trade-off API-first vs code-first cho team song song.
- 08~35 phút
Mini-challenge: TaskFlow REST API v1 — capstone phần REST API
Build TaskFlow REST API v1 từ scratch — domain Project + Task. 8 endpoint CRUD, validation, exception handling Problem Details, OpenAPI doc, in-memory storage. Đây là baseline cho phần JPA và course Spring Security extend lên.
- 09~4 phút
Error, Validation & API Docs — tổng kết
Tóm tắt Error, Validation & API Docs.