Flowchart · Model Validation
Validation đầu vào chạy trước action, quy tắc nghiệp vụ chạy trong service
Ranh giới validation đầu vào và nghiệp vụ
Request qua model binding và validation; ModelState không hợp lệ thì [ApiController] trả 400 trước khi action chạy, còn quy tắc cần truy vấn database nằm trong service và trả 409 hoặc 422.
TRƯỚC ACTION · CHỈ CẦN CHÍNH REQUEST
TRONG ACTION · CẦN TRUY CẬP DỮ LIỆU
REQUEST
KHÔNG
CÓ
TRUY VẤN
CÓ
KHÔNG
Model binding
route · body · query
Validation
[Required] · IValidatableObject
ModelState
hợp lệ?
400 Bad Request
[ApiController]
Action → service
email trùng? hạn mức?
Database
AppDbContext
Vi phạm
nghiệp vụ?
409 / 422
ProblemDetails
Thành công
200 · 201 · 204
Quy tắc cần database thuộc về service,
không nhét vào ValidationAttribute.
CHÚ GIẢI
Bước xử lý
Rẽ nhánh
Kho dữ liệu
Phản hồi
400 tự động, action không chạy
© tiennhm