Bạn đang trong một thời hạn gấp rút. Nhóm frontend đã sẵn sàng xây dựng, nhưng API backend vẫn đang trong giai đoạn thiết kế. Hoặc có thể bạn đang kiểm tra cách ứng dụng của mình xử lý các lỗi API, phản hồi chậm hoặc các trường hợp ngoại lệ cụ thể. Bạn cần các phản hồi API thực tế, nhưng bạn không thể hoặc không muốn phụ thuộc vào một dịch vụ đám mây bên ngoài.
Đây là lúc các máy chủ API mock tự lưu trữ (self-hosted) phát huy tác dụng. Chúng cung cấp cho bạn toàn quyền kiểm soát, quyền riêng tư và sự linh hoạt để mô phỏng API ngay trên cơ sở hạ tầng của riêng bạn. Dù bạn đang phát triển trong môi trường doanh nghiệp cách ly mạng, lo ngại về quyền riêng tư dữ liệu, hay chỉ muốn mọi thứ chạy cục bộ để tăng tốc, việc tự lưu trữ các mock của bạn là một chiến lược mạnh mẽ.
Nhưng với rất nhiều tùy chọn có sẵn, làm thế nào để bạn chọn được cái phù hợp? Bạn nên sử dụng một công cụ chuyên dụng, hay tự xây dựng một cái gì đó?
Nếu bạn đã chán việc phụ thuộc vào các dịch vụ bên ngoài cho quy trình phát triển của mình, hướng dẫn này là dành cho bạn. Chúng tôi sẽ khám phá bức tranh tổng thể về các máy chủ mock tự lưu trữ, so sánh các ứng cử viên hàng đầu và giúp bạn tìm ra lựa chọn hoàn hảo cho nhóm của mình.
Nếu tổ chức của bạn cần giữ tất cả các thông số kỹ thuật API, dữ liệu mock và lưu lượng truy cập trong cơ sở hạ tầng của riêng bạn—dù là vì quyền riêng tư, tuân thủ hay yêu cầu mạng nội bộ—bạn có thể chạy công cụ mock runner tự lưu trữ của Apidog trực tiếp trên máy chủ hoặc đám mây riêng của mình.
Bây giờ, hãy cùng khám phá các tùy chọn tự lưu trữ của bạn!
1. WireMock: Máy chủ Mock cấp doanh nghiệp

Tổng quan: WireMock có lẽ là máy chủ mock mã nguồn mở mạnh mẽ và đầy đủ tính năng nhất hiện có. Nó dựa trên Java nhưng có thể chạy như một máy chủ độc lập hoặc được nhúng vào các bài kiểm thử của bạn.
Các tính năng chính:
- Ghi & Phát lại: Ghi lại lưu lượng truy cập từ các API thực và phát lại nó dưới dạng mock.
- Tạo khuôn mẫu phản hồi động: Sử dụng Handlebars hoặc các công cụ tạo khuôn mẫu khác để tạo phản hồi động.
- Hành vi có trạng thái: Mô phỏng các thay đổi trạng thái trên nhiều yêu cầu (ví dụ: một tài nguyên được tạo sau đó được lấy).
- Chèn lỗi: Dễ dàng mô phỏng lỗi mạng, độ trễ và các phản hồi bị định dạng sai.
- So khớp yêu cầu: Khớp cực kỳ linh hoạt trên tiêu đề, nội dung phần thân (JSON, XML), tham số truy vấn và cookie.
Những điểm mạnh của WireMock:
- Kiểm soát hoàn toàn
- Các stub có thể tùy chỉnh cao
- Có thể mô phỏng độ trễ, lỗi, luồng có trạng thái
- Tuyệt vời cho các microservices
- Chạy qua Java, Docker hoặc độc lập
Nhược điểm:
- Không có giao diện người dùng đồ họa
- Không có khả năng cộng tác
- Không có tài liệu tự động
- Khó sử dụng cho người dùng không chuyên về kỹ thuật
- Chỉ REST (không hỗ trợ GraphQL hoặc WebSocket gốc)
Các tùy chọn triển khai:
- JAR độc lập: Chạy nó với
java -jar wiremock-standalone.jar - Container Docker:
docker run -it --rm -p 8080:8080 wiremock/wiremock - Nhúng vào các bài kiểm thử: Sử dụng như một thư viện trong các bài kiểm thử Java, JUnit hoặc Spring Boot của bạn.
Phù hợp nhất cho: Các nhóm cần mocking cấp độ công nghiệp, đặc biệt trong các hệ sinh thái Java/Kotlin hoặc cho các kịch bản kiểm thử phức tạp.
2. MockServer: Công cụ mạnh mẽ không phụ thuộc giao thức
Tổng quan: MockServer là một ứng cử viên khác dựa trên Java đặc biệt mạnh mẽ trong việc mocking không chỉ HTTP mà còn HTTPS, WebSockets và thậm chí cả SMTP.
Các tính năng chính:
- Hỗ trợ nhiều giao thức: Mock HTTP, HTTPS, WebSockets ngay lập tức.
- Quản lý kỳ vọng: API rõ ràng để thiết lập yêu cầu nào nên trả về phản hồi nào.
- Tạo khuôn mẫu JavaScript: Sử dụng JavaScript để tạo phản hồi động.
- Xác minh: Xác minh rằng các yêu cầu nhất định đã được thực hiện trong quá trình kiểm thử.
- Chế độ Proxy: Có thể hoạt động như một proxy để ghi lại hoặc sửa đổi lưu lượng truy cập.
Triển khai:
- Docker:
docker run -d --rm -p 1080:1080 mockserver/mockserver - Java: Chạy độc lập hoặc nhúng vào các bài kiểm thử.
Phù hợp nhất cho: Các nhóm cần mock vượt ra ngoài các API REST đơn giản (WebSockets, v.v.) hoặc những người thích API kỳ vọng rõ ràng của nó.
3. JSON Server: Mock REST không cần code
Tổng quan: JSON Server là một công cụ Node.js đơn giản đến kinh ngạc, tạo ra một API REST giả hoàn chỉnh từ một tệp JSON duy nhất trong vòng chưa đầy 30 giây.
Ưu điểm:
- Rất nhẹ
- Không cần cấu hình
- Tuyệt vời cho các nguyên mẫu nhỏ
Nhược điểm:
- Không phù hợp cho các quy trình làm việc API thực tế
- Không có khả năng cộng tác
- Không có hệ thống môi trường
- Không có tự động hóa
Cách hoạt động: Bạn tạo một tệp db.json:
{
"posts": [
{ "id": 1, "title": "First Post", "author": "Jane" }
],
"comments": [
{ "id": 1, "body": "Great post!", "postId": 1 }
]
}
Sau đó chạy json-server --watch db.json. Ngay lập tức, bạn có các endpoint REST:
GET /postsGET /posts/1POST /postsPUT /posts/1DELETE /posts/1GET /posts/1/comments(mối quan hệ)
Phù hợp nhất cho: Các nhà phát triển frontend cần một API REST nhanh chóng, không cần cấu hình để tạo nguyên mẫu. Nó không linh hoạt bằng cho các kịch bản phức tạp nhưng cực kỳ nhanh để thiết lập.
4. Máy chủ Mock Postman (Tự lưu trữ)
Tổng quan: Mặc dù Postman nổi tiếng với các tính năng đám mây, nhưng họ cung cấp máy chủ mock mã nguồn mở của Postman mà bạn có thể chạy cục bộ.
Cách hoạt động: Bạn định nghĩa API của mình trong một Postman Collection, sau đó sử dụng Newman CLI (công cụ chạy collection dòng lệnh của Postman) với tiện ích mở rộng máy chủ mock.
Các tính năng chính:
- Tận dụng Postman Collections: Nếu nhóm của bạn đã sử dụng Postman để thiết kế/kiểm thử API, đây là một lựa chọn tự nhiên.
- Dựa trên ví dụ: Các phản hồi dựa trên các ví dụ bạn lưu trong collection của mình.
- Tích hợp với CI/CD: Có thể chạy thông qua Newman trong pipeline của bạn.
Triển khai: Thiết lập phức tạp hơn liên quan đến Node.js, Newman và module máy chủ mock.
Phù hợp nhất cho: Các nhóm đã đầu tư sâu vào hệ sinh thái Postman và muốn đưa mocking vào nội bộ.
5. Prism (Stoplight)

Tổng quan: Prism là một máy chủ mock mã nguồn mở từ Stoplight được xây dựng đặc biệt cho các đặc tả OpenAPI (trước đây là Swagger).
Các tính năng chính:
- Ưu tiên OpenAPI: Nó xác thực các yêu cầu dựa trên đặc tả OpenAPI của bạn và trả về các lỗi thích hợp.
- Ví dụ động: Có thể tạo dữ liệu mock thực tế dựa trên schema của bạn (ví dụ: địa chỉ email, tên ngẫu nhiên).
- Chế độ Proxy: Có thể hoạt động như một proxy xác thực giữa client của bạn và API thực.
- Mock HTTP: Mô phỏng các hành vi HTTP khác nhau.
Lợi ích:
- Tuân thủ chính xác đặc tả của bạn
- Có thể xác thực các yêu cầu
- Dựa trên CLI và sẵn sàng cho Docker
- Hoạt động tốt với CI/CD
Hạn chế:
- Không có giao diện người dùng
- Không có khả năng cộng tác
- Không có logic mocking nâng cao
- Không lý tưởng cho người dùng không chuyên về kỹ thuật
Triển khai: Có sẵn dưới dạng công cụ CLI hoặc container Docker.
docker run --rm -it -p 4010:4010 stoplight/prism:4 mock -h 0.0.0.0 <https://raw.githubusercontent.com/OAI/OpenAPI-Specification/main/examples/v3.0/petstore.yaml>
Phù hợp nhất cho: Các nhóm thực hành thiết kế API-first với OpenAPI/Swagger muốn mocking tuân thủ đặc tả.
6. Mountebank
Tổng quan: Mountebank có một cách tiếp cận độc đáo. Nó không chỉ là một máy chủ mock HTTP; nó là một test double có thể mock bất kỳ giao thức nào bằng cách mở rộng nó.
Các tính năng chính:
- Đa giao thức: Hỗ trợ cốt lõi cho HTTP, HTTPS, TCP và SMTP. Các giao thức khác có thể được thêm vào.
- Có thể kịch bản hóa: Chèn logic JavaScript/Node.js tùy chỉnh cho các phản hồi phức tạp.
- Imposters: Mỗi mock được gọi là một "imposter" với cổng và giao thức riêng.
- Predicates: Logic so khớp yêu cầu tinh vi.
Triển khai: Ứng dụng Node.js, chạy như một dịch vụ.
Phù hợp nhất cho: Các nhóm cần mock các giao thức không phải HTTP hoặc muốn sự linh hoạt tối đa thông qua kịch bản hóa.
7. Mirage JS (Máy chủ Mock tập trung vào Front-End)

Mirage được xây dựng cho các nhà phát triển frontend sử dụng:
- React
- Vue
- Svelte
- Ember
- Next.js
Nó tạo một API mock bên trong ứng dụng frontend của bạn.
Ưu điểm:
- Tuyệt vời cho các nhóm tập trung nhiều vào frontend
- Hoạt động ngoại tuyến
- Tích hợp trực tiếp với phát triển UI
- Cho phép các mock có trạng thái
Nhược điểm:
- Không phải là mock mạng thực sự
- Không lý tưởng cho backend hoặc QA
- Chỉ tồn tại ở lớp frontend
Tận dụng Apidog như Máy chủ Mock tự lưu trữ và hơn thế nữa

Hầu hết các công cụ máy chủ mock chỉ tập trung vào việc mocking. Nếu bạn đang tìm kiếm một nền tảng API hoàn chỉnh bao gồm máy chủ mock, thiết kế API, cộng tác, gỡ lỗi, tài liệu, kiểm thử và tự động hóa, Apidog đứng đầu.
Một trong những điểm mạnh chính của Apidog là nó hỗ trợ cả hai:
Vì vậy, đối với các tổ chức cần mocking riêng tư, cô lập, công cụ mock runner tự lưu trữ của Apidog mang lại cho bạn tất cả lợi ích của nền tảng đám mây của họ, nhưng chạy trên cơ sở hạ tầng của riêng bạn.
Apidog thì khác biệt.
Nó giúp các nhóm quản lý toàn bộ vòng đời API, bao gồm:
- Thiết kế API
- Tài liệu API
- Kiểm thử API
- Tạo mock
- Cộng tác
- Môi trường & biến số
- Quy trình CI/CD
- Quyền hạn/vai trò
- Đồng bộ nhóm toàn cầu
- Tùy chọn mock tự lưu trữ & mock đám mây
Khả năng Mock của Apidog
- Phản hồi mock được tạo tự động từ định nghĩa API
- Các mẫu phản hồi động và dựa trên quy tắc
- Trình tạo dữ liệu ngẫu nhiên (ví dụ: tên, email, vị trí)
- Mock đa môi trường
- Cộng tác nhóm tích hợp
- Tùy chọn mock runner tự lưu trữ
- Tùy chọn mock đám mây
- Kiểm soát truy cập dựa trên vai trò
- Mock không cần code hoặc dựa trên script nâng cao
Công cụ runner tự lưu trữ hoàn hảo cho các nhóm yêu cầu:
- Triển khai tại chỗ
- Môi trường đám mây riêng
- Mạng phát triển nội bộ
- Quy trình làm việc dữ liệu cực kỳ nhạy cảm
- Mocking quy mô lớn cho các microservices
Thay vì ghép nối các công cụ lại với nhau, Apidog cung cấp cho bạn một nền tảng nơi:
Thiết kế → Mock → Kiểm thử → Tài liệu → Chia sẻ
tất cả diễn ra trong một hệ sinh thái thống nhất.
Đối với các nhóm lớn, nhu cầu doanh nghiệp hoặc các tổ chức kỹ thuật toàn cầu, đây là một lợi thế rất lớn.
Tại sao nên chọn một Máy chủ Mock tự lưu trữ?
Máy chủ mock API tự lưu trữ là một dịch vụ bạn chạy trên cơ sở hạ tầng của riêng mình tại chỗ, trên đám mây riêng của công ty bạn, trên máy ảo (VM) hoặc bên trong Docker, cung cấp các phản hồi mock cho các endpoint API.
Trước khi chúng ta xem xét các công cụ cụ thể, hãy cùng hiểu tại sao bạn có thể chọn tự lưu trữ thay vì sử dụng giải pháp SaaS.
1. Quyền riêng tư và Bảo mật Dữ liệu
Đây là lý do lớn nhất đối với nhiều tổ chức. Khi bạn tự lưu trữ, các thông số kỹ thuật API, dữ liệu mock và lưu lượng truy cập của bạn không bao giờ rời khỏi mạng của bạn. Điều này rất quan trọng đối với:
- Các ứng dụng chăm sóc sức khỏe (tuân thủ HIPAA)
- Các dịch vụ tài chính với dữ liệu nhạy cảm
- Các dự án của chính phủ hoặc quốc phòng
- Bất kỳ nhóm nào làm việc với dữ liệu độc quyền hoặc được quy định
2. Phát triển Ngoại tuyến
Các nhà phát triển trên máy bay, tàu hỏa hoặc ở những khu vực có internet không ổn định vẫn có thể tiếp tục làm việc. Máy chủ mock của bạn chạy cục bộ trên máy tính xách tay của bạn.
3. Kiểm soát và Tùy chỉnh Hoàn toàn
Bạn sở hữu toàn bộ stack. Bạn có thể:
- Sửa đổi mã nguồn nếu cần (với các công cụ mã nguồn mở)
- Tích hợp sâu rộng với pipeline CI/CD nội bộ của bạn
- Cấu hình mạng, tường lửa và quyền truy cập chính xác theo ý muốn của bạn
- Đảm bảo khả dụng 100% (không phụ thuộc vào thời gian hoạt động của bên thứ ba)
4. Khả năng dự đoán chi phí
Không có hóa đơn hàng tháng bất ngờ dựa trên mức sử dụng. Một khi được triển khai trên cơ sở hạ tầng của bạn, chi phí biên là tối thiểu.
5. Hiệu suất
Độ trễ mạng được loại bỏ cho việc phát triển cục bộ. Các phản hồi mock của bạn trả về trong vài mili giây.
Kết luận: Trao quyền thông qua kiểm soát
Các máy chủ mock API tự lưu trữ trả lại sức mạnh vào tay bạn. Chúng cho phép phát triển nhanh hơn, kiểm thử đáng tin cậy hơn và quyền riêng tư cao hơn, đồng thời giữ các phụ thuộc của bạn trong nội bộ.
Dù bạn chọn sự đơn giản của JSON Server, sự mạnh mẽ của WireMock hay sự tuân thủ đặc tả của Prism, bạn đang đầu tư vào một quy trình phát triển linh hoạt và độc lập hơn.
Hãy nhớ rằng, công cụ tốt nhất là công cụ phù hợp hoàn hảo với quy trình làm việc hiện có của nhóm bạn và giải quyết các vấn đề cụ thể của bạn. Bắt đầu với một bằng chứng khái niệm đơn giản, nhận phản hồi từ nhóm của bạn và lặp lại. Bạn trong tương lai và các nhà phát triển frontend của bạn, những người không còn bị cản trở, sẽ cảm ơn bạn.
Đối với nhiều nhóm, việc bắt đầu với một nền tảng đám mây toàn diện như Apidog cung cấp con đường nhanh nhất để hiểu về mocking API hiện đại, từ đó đưa ra quyết định chiến lược hơn về việc có nên và làm thế nào để tự lưu trữ.
