# TRANG 1: Dịch vụ API REST (Gateway Layer)

### 1.1. Cấu trúc và Vị trí

Các định nghĩa API nằm tại: `src/main/wso2mi/artifacts/apis`. Mỗi API trong dự án LGSP đóng vai trò là một Gateway, thực hiện bảo mật, ghi log và điều phối yêu cầu.

### 1.2. Luồng xử lý tiêu biểu (Ví dụ: GuiNhanVanBan API)

Hệ thống sử dụng các Mediator mạnh mẽ để xử lý nghiệp vụ:

- **Xác thực Header:** Lấy các thông tin như `activityid`, `servicetype`, `messagetype` từ Transport Header.
- **Xác thực Đơn vị (CheckUnitCodeDBS):** Sử dụng `<dataServiceCall>` để kiểm tra mã hệ thống (`SystemCode`) của đơn vị gửi. Nếu không tồn tại, API sẽ trả về lỗi ngay lập tức.
- **Lưu trữ tin nhắn (Message Store):** Sử dụng lệnh `<store messageStore="EDXMLMessageStore"/>` để đưa payload vào hàng đợi RabbitMQ thay vì gửi trực tiếp, giúp tăng khả năng chịu tải và tin cậy.

### 1.3. Cơ chế Logging Tập trung

Mọi API đều gọi đến `DatabaseLogSequence` và `ResultLogSequence` để:

- Lưu vết vào bảng `api_logs`.
- Ghi lại thông tin người dùng (Client IP), payload request và response code.