Luồng xử lý API Backend (API Processing Flow)
1.1. Mục tiêu chương
Mô tả luồng xử lý chuẩn của một API backend từ khi nhận request đến khi deploy production nhằm:
-
Thống nhất cách xây dựng API giữa các team
-
Đảm bảo tuân thủ đầy đủ các quy định kiến trúc
-
Dễ trace lỗi và audit
-
Liên kết các chuẩn đã quy định ở các chương trước
1.2. Phạm vi áp dụng
Áp dụng cho:
-
Tất cả REST API trong modules/**
-
Core Team và Partner Team
-
Tất cả service Spring Boot
1.3. Tổng quan luồng xử lý API
Luồng chuẩn:
1.4. Các bước xử lý chi tiết
Bước 1. Client gọi API
Ví dụ:
Payload:
Quy định liên quan:
👉 Chương 7 — API Design & Response Standard
Bước 2. Security / Authentication
Hệ thống kiểm tra:
-
JWT / SSO token
-
Permission
-
Role
Nếu fail:
Quy định liên quan:
👉 Chương 8 — Cơ chế xác thực & SSO (WSO2)
Bước 3. Controller nhận request
Quy định:
-
Name Controller
-
Không chứa business logic
👉 Chương 3 — Coding Convention
👉 Chương 7 — API Design
Bước 4. DTO Validation
DTO:
Spring tự validate trước khi vào service.
Nếu lỗi:
Response chuẩn:
Quy định:
👉 Chương 3 — Coding Convention (Validation)
👉 Chương 7 — Response Standard
Bước 5. Service xử lý logic
Cấu trúc chuẩn 1 hàm service:
Quy định:
👉 Chương 3 — Coding Convention
👉 Chương 4 — Entity & Database
Bước 6. Repiository & Database
Nếu thay đổi schema:
-
update entity
-
migration script
Quy định:
👉 Chương 4 — Thay đổi Entity & DB
👉 Chương 5 — Schema & Migration
Bước 7. Mapping Response
Response chuẩn:
Quy định:
👉 Chương 7 — Response Standard
Bước 8. Logging & Audit
Trong service:
Nếu nghiệp vụ quan trọng:
-
ghi audit_log
Quy định:
👉 Chương 3 — Logging
👉 Chương 6 — Audit Log
Bước 9. Exception Handling
Ví dụ:
Global handler:
Response:
Quy định:
👉 Chương 7 — Response & Error
1.5. Luồng phát triển & release API
Sau khi code xong:
Bước 10. Commit & PR
Quy định:
👉 Chương 9 — Git Workflow & Pull Request
Bước 11. Checklist trước merge
Quy định:
👉 Chương 10 — Checklist merge
Bước 12. Deploy & Update DB
Nếu có migration:
-
chạy script
-
deploy service
Quy định:
👉 Chương 5 — Migration
👉 Chương 12 — Connect DB