Tài Liệu API — GovData: Nền Tảng Quản Lý, Quản Trị Dữ Liệu Thành Phố¶
Phiên bản: 1.1 Ngày tạo: 2026-04-08 Trạng thái: Draft — Chờ Tech Lead xác nhận Nguồn: Phương Án Kỹ Thuật, Epics, Use Cases, Role Matrix
Mục Lục¶
...
1. Tổng Quan & Quy Ước API¶
Thông Tin Chung¶
...
| Định dạng ngày | ISO 8601 (2026-04-08T14:30:00Z) |
| Timezone | Asia/Ho_Chi_Minh (UTC+7) |
...
2. Danh Sách API Tổng Hợp¶
EP-03: Khám Phá, Đối Chiếu & Ma Trận Hiện Trạng¶
| # | Method | Endpoint | Mục đích | Vai trò | UC |
|---|---|---|---|---|---|
| ... | |||||
| 49 | GET | /source-mappings/matrix |
Ma trận Source Mapping (DE × Đơn vị) | Manager, Approver | UC-MAP-003 |
| 50 | GET | /source-mappings/matrix/my-org |
Chỉ xem ma trận đơn vị mình (read-only) | Data Owner | UC-CONFIRM-001 |
| 51 | PATCH | /source-mappings/confirm-batch |
Data Owner xác nhận batch | Data Owner | UC-CONFIRM-002 |
| 52 | PATCH | /source-mappings/reject-batch |
Data Owner từ chối batch | Data Owner | UC-CONFIRM-002 |
| 53 | PATCH | /source-mappings/{id}/dispute |
Đánh dấu DISPUTED (lý do ≥ 20 ký tự) | Data Owner, Manager | UC-CONFIRM-003 |
| 54 | GET | /source-mappings/disputed |
Danh sách ô DISPUTED | Manager, Approver | UC-CONFIRM-003/004 |
| 55 | PATCH | /source-mappings/{id}/resolve |
Giải quyết DISPUTED (3 hướng) | Approver | UC-CONFIRM-004 |
| 56 | POST | /source-mapping-approval/approve |
Phê duyệt Ma trận Hiện trạng tổng thể | Approver | UC-CONFIRM-005 |
| 57 | GET | /source-mapping-approval/status |
Trạng thái phê duyệt (% xác nhận, số DISPUTED) | Manager, Approver | UC-CONFIRM-005 |
| 58 | POST | /source-mapping-approval/{id}/revoke |
Thu hồi bản phê duyệt hiện tại | Approver | UC-CONFIRM-005 |
| 59 | GET | /source-mapping-approval/history |
Lịch sử phê duyệt | Manager, Approver | UC-CONFIRM-005 |
Chi tiết: api-specs/ep-03-discovery-matching.md
4. Phân Loại Lỗi¶
Error Taxonomy¶
...
| business_rule_error | 422/409 | Vi phạm quy tắc nghiệp vụ | DISPUTED note < 20 ký tự, phê duyệt khi còn DISPUTED |
...
Ví Dụ Error Response¶
Business Rule Error (409 Conflict):
{
"success": false,
"error": {
"type": "BUSINESS_ERROR",
"code": "SOURCE_MAPPING_APPROVAL_DISPUTED_REMAINING",
"message": "Cannot approve source mapping: there are unresolved DISPUTED cells",
"details": {
"disputedCount": 3,
"confirmedOrgsPercent": 85,
"requiredPercent": 70
}
},
"timestamp": "2026-04-19T14:30:00Z",
"traceId": "abc-456"
}
Business Rule Error Codes Đặc Thù¶
| Code | Mô tả | Endpoint liên quan |
|---|---|---|
DISPUTED_NOTE_TOO_SHORT |
Ghi chú tranh chấp < 20 ký tự | PATCH /source-mappings/{id}/dispute |
SOURCE_MAPPING_APPROVAL_DISPUTED_REMAINING |
Còn ô DISPUTED khi phê duyệt | POST /source-mapping-approval/approve |
SOURCE_MAPPING_APPROVAL_INSUFFICIENT_CONFIRMATION |
< 70% đơn vị xác nhận | POST /source-mapping-approval/approve |
| ... |
7. Idempotency & Reliability¶
Idempotency Guard Ví Dụ¶
Phê duyệt Ma Trận Hiện Trạng — Không phê duyệt 2 lần:
-- Guard: kiem tra trang thai truoc khi chuyen
INSERT INTO source_mapping_approval (...)
SELECT ... FROM source_mapping
WHERE NOT EXISTS (SELECT 1 FROM source_mapping_approval WHERE status = 'APPROVED');
Cập nhật lần cuối: 2026-04-19