0

ReqX: Hành trình xây dựng công cụ Test API siêu nhẹ thay thế Postman bằng Tauri, React và AI Chain

ReqX: Hành trình xây dựng công cụ Test API siêu nhẹ thay thế Postman bằng Tauri, React và AI Chain

Chào anh em lập trình viên và QA/QC trên Viblo! Chắc hẳn trong công việc hàng ngày, Postman từng là "vật bất ly thân" của hầu hết chúng ta khi phát triển backend, frontend hay kiểm thử API. Tuy nhiên, thời gian gần đây, việc Postman:

  1. Bắt buộc phải đăng nhập và đồng bộ dữ liệu lên Cloud (gây lo ngại về bảo mật dữ liệu doanh nghiệp và token nội bộ).
  2. Chiếm dụng quá nhiều tài nguyên máy tính (mỗi lần mở ngốn từ 800MB đến hơn 1.5GB RAM do nền tảng Electron nặng nề).
  3. Giới hạn số lượt chạy Collection Runner ở gói miễn phí. Những bất tiện đó đã thôi thúc mình tự tay xây dựng một công cụ test API mang tên ReqX — nhanh, gọn, bảo mật 100% offline và được trang bị trợ lý AI thông minh để tự động hóa kiểm thử. Hôm nay mình xin chia sẻ về kiến trúc kỹ thuật của ReqX cũng như cách mình tối ưu nó để phục vụ cộng đồng developer.

1. Triết lý thiết kế: "Nhẹ - Nhanh - Riêng tư"

Khi bắt đầu dự án, mình đặt ra 4 tiêu chí cốt lõi:

  • Tài nguyên tối thiểu: Khởi động tức thì trong 1 giây, RAM tiêu thụ chỉ khoảng 40MB – 80MB.
  • 100% Offline-First: Toàn bộ Collection, Environment, History và Secret Keys được lưu trữ trên máy cá nhân (localStorage / file mã hóa nội bộ). Không có bất kỳ dữ liệu nhạy cảm nào bị đẩy lên server của bên thứ ba.
  • Tương thích Postman v2.1: Dễ dàng import/export toàn bộ collection, script tests mà không bị mất dữ liệu.
  • Không giới hạn (Uncapped): Không giới hạn số lượng tab, số lượt chạy Runner hàng loạt hay số mock endpoints.

2. Kiến trúc công nghệ của ReqX

Thay vì tiếp tục đi theo lối mòn Electron, mình quyết định lựa chọn stack hiện đại:

  • Core Backend: Rust + Tauri v2
    • Sử dụng Webview bản địa của hệ điều hành (WebView2 trên Windows, WebKitGTK trên Linux).
    • Nhân HTTP Client được viết bằng Rust (reqwest đa luồng, hỗ trợ HTTP/1.1, HTTP/2, stream SSE, WebSocket và gRPC Protobuf) giúp loại bỏ hoàn toàn rào cản CORS khi test API từ desktop.
  • Frontend UI: React 18 + TypeScript + TailwindCSS + Zustand
    • Giao diện được thiết kế tối giản, trực quan, hỗ trợ Dark/Light theme và chuyển đổi tức thì giữa Tiếng Việt và Tiếng Anh.
  • Testing Sandbox: Tích hợp bộ máy thực thi script (Pre-request & Tests) an toàn, tương thích cú pháp pm.* phổ biến của Postman.

3. Các tính năng nổi bật đáng chú ý

3.1. Trợ lý AI (AI Assistant) với cơ chế "AI Chain" thông minh

Khác với việc chỉ nhúng một chatbot đơn thuần, ReqX cung cấp hệ thống AI Chain:

  • Hỗ trợ đa nhà cung cấp: Kết nối linh hoạt giữa Google Gemini, Groq, Mistral, OpenRouter, Cloudflare Workers AI hoặc cả Ollama / Local LLM (chạy offline trên máy cá nhân).
  • Tự động cân bằng và thích ứng (Adaptive RPM): Tự động đo lường hạn ngạch gọi API, tự nhảy sang nấc dự phòng khi gặp rate limit (free →\rightarrow paid hoặc ngược lại).
  • Tự động viết và chạy thử script (Auto-verify): Khi bạn yêu cầu AI viết test script, ReqX sẽ tự động chạy thử ngầm 1 request thật để bắt lỗi cú pháp/runtime và yêu cầu AI tự sửa code đến khi hoàn hảo mới chèn vào collection.

3.2. Runner hàng loạt & Kiểm thử tự động (Test Case Generator)

  • Chạy toàn bộ thư mục/collection tuần tự kèm dữ liệu từ file CSV/JSON.
  • Sinh bộ test cực đoan (Boundary Testing): Chỉ với 1 click, ReqX tự phân tích cấu trúc body JSON và sinh ra hàng chục test case dị biệt (thiếu trường, null, sai kiểu dữ liệu, SQL injection pattern,...) kèm kỳ vọng status code để tester đối soát nhanh.

3.3. Tích hợp sẵn Mock Server & Quản lý môi trường chuyên sâu

  • Giả lập nhanh API server local với đầy đủ cấu hình route, status code và mock response.
  • Quản lý biến môi trường với cơ chế Secret Masking (chỉ giữ trong RAM khi mở app, tự hủy khi tắt để tránh lộ API key).

3.4. Xuất tài liệu API (API Docs) 1-Click

  • Hỗ trợ xuất tài liệu toàn bộ Collection ra file Markdown chuẩn (để commit Git) hoặc file HTML tương tác (mở trực tiếp trên trình duyệt, có sẵn nút in ấn và mục lục tra cứu nhanh).

4. Tải và trải nghiệm

ReqX hiện đã có bản phát hành dành cho Windows và Linux (hỗ trợ cả file cài đặt và bản Portable mở lên là chạy, không cần cài đặt rườm rà):


Lời kết

ReqX được sinh ra từ chính nhu cầu thực tế của một lập trình viên muốn tìm lại cảm giác nhẹ nhàng, an tâm về dữ liệu riêng tư và tối ưu tốc độ làm việc mỗi ngày. Dự án hiện tại là hoàn toàn mở và miễn phí. Rất mong nhận được những góp ý, đóng góp tính năng hoặc phản hồi từ anh em cộng đồng Viblo để ReqX ngày càng hoàn thiện hơn. Nếu thấy dự án hữu ích, đừng quên tặng cho mình 1 Star ⭐ trên GitHub nhé! Cảm ơn anh em rất nhiều.


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí