1. Architecture
Search Tool
  • Tổng quan Cấu trúc Hệ thống
  • Bussiness | Logic
    • Nghiệp vụ & Luồng Tìm kiếm
  • Project
    • Search API
      • Tổng quan
      • Architecture
        • User Guide
        • Database Schema
        • System Architecture
        • Code Structure
      • Deployment
        • Product
      • API Interface
        • Tài liệu Tham khảo API
        • Go - Auth
          • Đăng nhập
          • Đăng ký (Public)
        • Go - User
          • Danh sách User (Phân trang)
          • Tạo User
          • Lấy tất cả User
          • Profile cá nhân
          • Chi tiết User
          • Cập nhật User
          • Xóa User
          • Đổi mật khẩu
        • Go - System
          • Nhật ký hoạt động (Phân trang)
          • Cập nhật dữ liệu Search
          • Test Webhook receiver
        • Go - Server
          • Danh sách Server (Phân trang)
          • Tạo Server
          • Lấy tất cả Server
          • Chi tiết Server
          • Cập nhật Server
          • Xóa Server
        • Go - Tasks
          • Tạo nhiều task Search
          • Lấy tất cả task Search
          • Reset trạng thái tất cả nhiệm vụ Search
          • Tạo nhiều task Anchor Text
          • Lấy tất cả nhiệm vụ Anchor Text
          • Reset trạng thái tất cả nhiệm vụ Anchor Text
        • Go - Webhook
          • Webhook cập nhật trạng thái (Dùng WEBHOOK_KEY)
          • Lấy Proxy cho Tool
          • Lấy Proxy có thể rotate
          • Cập nhật kết quả Search
          • Kết quả rotate Proxy
          • Cập nhật kết quả Anchor Text
          • Nhận kết quả từ Tool (v2)
        • Bun - Main
          • Thông tin server Bun
          • Health Check
          • Lấy file Log
        • Bun - Task
          • Danh sách Search Tasks
          • Tạo nhiều Search Tasks
          • Xóa tất cả Search Tasks
          • Xóa Search Task
          • Reset trạng thái Search
          • Reset running process
          • Danh sách Anchor Tasks
          • Tạo nhiều Anchor Tasks
          • Xóa tất cả Anchor Tasks
          • Xóa Anchor Task
          • Reset trạng thái Anchor
          • Reset running process
    • Search tool
      • Tổng quan
      • Architecture
        • User Guide
        • Database Schema
        • System Architecture
        • Code Structure
      • Deployment
        • Product
  • Schemas
    • LoginRequest
    • ProxyRequest
    • CreateUserRequest
    • KeywordTaskRequest
    • UpdateUserRequest
    • SearchAutomationRequest
    • ChangePasswordRequest
    • CreateServerRequest
    • AnchorTextTaskRequest
  1. Architecture

Code Structure

TÀI LIỆU KỸ THUẬT: CODE STRUCTURE - SEARCH TOOL API#

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/loginCông khai (Public)Giao diện đăng nhập. Không yêu cầu mã xác thực.
POST /api/user/registerCô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 TokenNhó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 HeaderNhó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 HeaderNhó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 HeaderNhó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
Trước
System Architecture
Tiếp theo
Product
Built with