Mã nguồn của hệ thống Search Tool API được xây dựng bám sát theo Tiêu chuẩn Cấu trúc Dự án Go (Standard Go Project Layout). Mô hình này thúc đẩy việc áp dụng Dependency Injection (thông qua Uber Dig), chia tách lớp rõ ràng giữa định tuyến, nghiệp vụ và xử lý dữ liệu.
I. CÂY THƯ MỤC MÃ NGUỒN (DIRECTORY LAYOUT)#
Cấu trúc chi tiết của dự án được tổ chức như sau:api/
├── cmd/
│ └── main.go # Entry point: Điểm khởi chạy của toàn bộ ứng dụng HTTP và Cron.
│
├── bootstrap/ # Gói khởi tạo ứng dụng.
│ ├── routes.go # Đăng ký tập trung toàn bộ Endpoint và Middleware.
│ ├── cron/ # Thiết lập hệ thống công việc chạy ngầm (Gocron).
│ ├── injection/ # Khởi tạo vùng chứa Dependency Injection (Uber Dig).
│ └── socket/ # Thiết lập máy chủ WebSocket (Socket.IO).
│
├── internal/ # Khối xử lý Logic Nghiệp vụ (Core Business Logic).
│ ├── activity_log/ # Module: Truy vết hoạt động (MySQL).
│ ├── anchor_text/ # Module: Xử lý tác vụ Anchor Text (MongoDB).
│ ├── keyword/ # Module: Danh mục Từ khóa, ENUM thiết bị và máy tìm kiếm.
│ ├── keyword_pool_task/ # Module: Quản lý hàng đợi tác vụ nội bộ.
│ ├── keyword_result/ # Module: Lưu trữ cấu trúc dữ liệu SearchData.
│ ├── proxy/ # Module: Điều phối IP, Import file Excel.
│ ├── server/ # Module: Quản lý tài nguyên Máy chủ Công cụ (MySQL).
│ ├── user/ # Module: Xác thực người dùng (Login, Register).
│ └── webhook/ # Module: Tiếp nhận Callback độc lập từ Máy chủ Công cụ.
│ ├── dto/ # Định nghĩa đối tượng truyền tải dữ liệu (Data Transfer Objects).
│ ├── handler/ # Tầng giao tiếp HTTP (Controller).
│ ├── repository/ # Tầng thao tác Cơ sở dữ liệu.
│ └── service/ # Tầng logic nghiệp vụ trung tâm.
│
├── pkg/ # Tiện ích chia sẻ (Shared Utilities).
│ ├── env.go # Nạp và định nghĩa cấu trúc biến môi trường.
│ ├── api/ # Bộ thư viện máy khách HTTP gọi ra hệ thống ngoại vi.
│ ├── apperror/ # Định nghĩa chuẩn hệ thống mã lỗi.
│ ├── cache/ # Lớp bọc thao tác bộ nhớ đệm Redis.
│ ├── database/ # Quản trị kết nối MySQL và MongoDB.
│ ├── excel/ # Bộ phân tích dữ liệu từ định dạng .xlsx.
│ ├── jwt/ # Thuật toán khởi tạo và xác thực Token JWT.
│ ├── logger/ # Lõi ghi log (Zap) tích hợp cơ chế luân chuyển tệp tin (Lumberjack).
│ ├── messages/ # Cấu trúc phản hồi HTTP tiêu chuẩn.
│ ├── middleware/ # Các rào chắn bảo mật (JWT, Webhook Key, Exception Recovery).
│ ├── scheduler/ # Lớp bọc quản lý công việc theo lịch trình.
│ ├── telegram/ # Tích hợp hàm gửi thông báo qua API Telegram.
│ └── validate/ # Bộ quy tắc kiểm duyệt dữ liệu Payload đầu vào.
│
├── common/ # Dữ liệu tĩnh và cấu trúc phổ quát.
│ ├── const.go # Khai báo Hằng số toàn cục.
│ └── paging.go # Định nghĩa cấu trúc DTO phục vụ phân trang dữ liệu.
│
├── go.mod # Tệp khai báo và quản lý thư viện phụ thuộc.
├── .env.example # Tệp chứa các tham số môi trường tiêu chuẩn.
└── docker-compose.yaml # Tập lệnh triển khai hạ tầng Container (DB, Redis).
II. MA TRẬN BẢO MẬT & PHÂN TUYẾN MIDDLEWARE (AUTHORIZATION SUMMARY)#
Hệ thống định tuyến được chia nhóm chặt chẽ theo từng rào chắn Middleware chuyên biệt, đảm bảo các yêu cầu bảo mật ở cấp độ giao thức HTTP.| Nhóm Định tuyến (Route Group) | Phương thức Xác thực (Auth Method) | Đặc tả Quy tắc (Security Rule) |
|---|
GET / | Công khai (Public) | Kiểm tra sức khỏe hệ thống (Health Check). Không yêu cầu mã xác thực. |
POST /api/user/login | Công khai (Public) | Giao diện đăng nhập. Không yêu cầu mã xác thực. |
POST /api/user/register | Công khai (Public) | Giao diện đăng ký tài khoản. Không yêu cầu mã xác thực. |
**/api/** | JWT Bearer Token | Nhóm API quản trị. Yêu cầu truyền Header: Authorization: Bearer <token>. Lỗi trả về HTTP 401 nếu Token hết hạn hoặc không hợp lệ. |
**/search/** | API Key Header | Nhóm API tạo tác vụ. Yêu cầu truyền Header: x-api-key. Đối chiếu với tham số API_SEARCH_TOKEN khai báo trong tệp môi trường. |
**/anchor-text/** | API Key Header | Nhóm API tạo tác vụ. Yêu cầu truyền Header: x-api-key. Đối chiếu với tham số API_SEARCH_TOKEN. |
**/webhook/** | Webhook Key Header | Nhóm API nhận dữ liệu trả về từ các Server phụ trợ. Yêu cầu truyền Header: x-webhook-key. Đối chiếu với tham số WEBHOOK_KEY. |
Ngày cập nhật 2026-03-30 03:23:40