Xác Định Định Tuyến Qua Cấu Hình JSON
Mọi luật phản hồi của dịch vụ giả lập đều được lưu trữ tại đường dẫn client/src/config/routes.json. Thao tác trực tiếp trên tệp cấu hình cho phép kiểm soát chính xác các tham số đầu vào/đầu ra mà giao diện đồ họa đôi khi chưa hỗ trợ đầy đủ. Mỗi block định tuyến cần tuân thủ lược kê khai rõ ràng để parser đọc đúng ngữ nghĩa.
{
"routeMetadata": {
"identifier": "svc_account_v2",
"pathPattern": "/api/v2/accounts",
"httpVerb": "POST"
},
"responseParameters": {
"statusBar": 201,
"simulateLatency": 280,
"returnBody": {
"accountId": "ACC-9921",
"createdAt": "2023-11-14T08:30:00Z",
"permissions": ["read", "write"]
}
},
"inboundHeaders": [
{ "name": "X-Client-Version", "val": "1.4.2" },
{ "name": "X-Request-Signature", "val": "sha256_a1b2c3d4" }
]
}
Cấu trúc phân tách routeMetadata và responseParameters giúp duy trì tính đồng bộ khi scale số lượng endpoint. Giá trị simulateLatency tính bằng mili giây, cho phép mô phỏng tình huống network chậm hoặc timeout. Khi cần điều hướng request theo query string hoặc path parameter, hãy mở rộng trường pathPattern bằng ký hiệu định dạng REST standard.
Triển Khai Middlewares Xử Lý Logic Tùy Chỉnh
Framework cung cấp thư mục mockit-routes/src/middlewares làm điểm neo cho các hàm xử lý trung gian. Mỗi module phải xuất出一个 function nhận đối tượng chuẩn (req, res, next) và gọi next() để giữ luồng request hoạt động bình thường. Middleware là nơi lý tưởng để thực hiện validate schema, transform data, hoặc attach metadata vào response.
// middleware/response-transformer.js
module.exports = function transformerMiddleware(req, res, next) {
const targetEnv = process.env.MOCK_ENV || 'development';
res.setHeader('X-Mock-Environment', targetEnv);
// Giữ nguyên vòng đời request, truyền control sang handler tiếp theo
next();
};
Sau khi tạo file, di chuyển nó vào đúng namespace hệ thống và liên kết với route tương ứng trong phần cấu hình JSON thông qua khóa middlewareStack. Chuỗi middleware sẽ được thực thi tuần tự từ trên xuống dưới trước khi trả về payload cuối cùng.
Toggle Tính Năng Hệ Thống Tại Block Global Settings
Tập hợp cờ bật/tắt toàn cục nằm trong section globalSettings của file định tuyến. Những tham số này ảnh hưởng trực tiếp đến runtime behavior của server instance, bao gồm policy truy cập, cơ chế random error injection và cấu hình cross-origin.
"globalSettings": {
"activateModules": {
"corsEnforcement": true,
"gatewayAuth": false,
"chaosInjection": true,
"batchRouteGrouping": true
},
"authSetup": {
"allowedPairs": [
{ "username": "qa_lead", "password": "test_qa_77x" }
],
"restrictedRealm": "Internal-Staging"
}
}
Khi chaosInjection được kích hoạt, engine sẽ tự động sinh ra HTTP 503 hoặc corrupt body ngẫu nhiên nhằm kiểm tra resilience logic của client application. corsEnforcement sẽ tự động append header Access-Control-Allow-Origin vào mỗi response. Đối với authentication, hãy đảm bảo cặp credentials được sync đồng bộ với yêu cầu bảo mật của môi trường CI/CD đang chạy test suite.