Error, Validation & API Docs

Exception handling (@RestControllerAdvice, Problem Details RFC 9457), Jakarta validation, và OpenAPI docs với springdoc.

9 bài · ~120 phútMiễn phí

Nội dung

Danh sách bài học

  1. 01

    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.

    ~4 phút
  2. 02

    @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.

    ~14 phút
  3. 03

    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.

    ~12 phút
  4. 04

    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.

    ~12 phút
  5. 05

    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.

    ~13 phút
  6. 06

    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.

    ~12 phút
  7. 07

    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.

    ~14 phút
  8. 08

    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.

    ~35 phút
  9. 09

    Error, Validation & API Docs — tổng kết

    Tóm tắt Error, Validation & API Docs.

    ~4 phút