Công cụ giả lập API CLI mã nguồn mở miễn phí

Sáu công cụ CLI miễn phí, mã nguồn mở để mô phỏng API, được xếp hạng theo giấy phép và khả năng tự lưu trữ: Prism, Mockoon CLI, json-server, WireMock, MockServer, và Microcks.

INEZA Felin-Michel

INEZA Felin-Michel

10 tháng 7 2026

Công cụ giả lập API CLI mã nguồn mở miễn phí

Apidog cho doanh nghiệp

Triển khai tại chỗ

SSO & RBAC

Tuân thủ SOC 2

Khám phá Apidog Enterprise

Khi bạn mô phỏng một API từ dòng lệnh, giấy phép quan trọng không kém gì danh sách tính năng. Một máy chủ giả lập mà bạn có thể đọc mã nguồn, tự lưu trữ và chạy trong CI mà không cần đếm số chỗ ngồi là một điều rất khác so với một máy chủ giả lập SaaS được lưu trữ phía sau một lần đăng nhập. Hướng dẫn này bao gồm khía cạnh mã nguồn mở: các công cụ bạn có thể sao chép, kiểm tra và chạy miễn phí.

Mọi công cụ ở đây đều có sẵn mã nguồn dưới giấy phép mở (MIT hoặc Apache-2.0), nằm trên một kho lưu trữ GitHub công khai và có thể tự lưu trữ mà không cần tài khoản. Đó là tiêu chí lọc. Nếu bạn muốn các lựa chọn nhỏ hơn, chỉ một tệp thực thi được xếp hạng theo tốc độ khởi động và kích thước cài đặt, hãy đọc các lựa chọn máy chủ giả lập nhẹ đi kèm; danh sách này tập trung vào mã nguồn và khả năng tự lưu trữ, vì vậy một nền tảng tự lưu trữ nặng hơn vẫn có thể có chỗ.

Đối với mỗi công cụ, bạn sẽ có giấy phép, một lệnh cài đặt-cộng-chạy chứng minh nó hoạt động, điểm mạnh nhất của nó và những hạn chế của nó. Nếu bạn muốn tìm hiểu rộng hơn bao gồm các tùy chọn thương mại, tổng hợp các công cụ giả lập API tốt nhấttổng quan về các công cụ giả lập API REST sẽ đi sâu hơn.

Một lưu ý nhanh, chân thực trước danh sách. Apidog không phải là mã nguồn mở; đó là một nền tảng thương mại freemium. Nó xuất hiện một lần ở cuối như một lựa chọn thay thế tích hợp cho các công cụ này, được dán nhãn rõ ràng, không phải là một mục mã nguồn mở. Mọi thứ trong các phần được đánh số dưới đây đều thực sự là mã nguồn mở.

nút tải ứng dụng

Điều gì làm cho một công cụ giả lập CLI trở thành mã nguồn mở

Ba điều quyết định liệu một công cụ có thuộc danh sách này hay không.

Giấy phép. Mã nguồn phải công khai dưới một giấy phép mở. Mọi lựa chọn ở đây đều là MIT hoặc Apache-2.0, vì vậy bạn có thể đọc, phân nhánh và triển khai nó trong sản phẩm của riêng bạn mà không mất phí giấy phép hoặc giới hạn số chỗ ngồi.

Có thể tự lưu trữ. Bạn chạy nó trên máy tính xách tay của mình, trong một container hoặc trên máy chủ của riêng bạn. Không có mặt phẳng điều khiển được lưu trữ, không có cuộc gọi về máy chủ nhà cung cấp, không có cổng tài khoản. Đó là điều giúp một mô phỏng có thể sử dụng được trong một môi trường CI không có kết nối mạng.

Được duy trì công khai. Một kho lưu trữ GitHub công khai với lịch sử commit, vấn đề và bản phát hành thực sự. Lượt sao là một tín hiệu sơ bộ; các commit gần đây và các bản phát hành được gắn thẻ là tín hiệu tốt hơn.

Lưu ý những gì không có trong danh sách: tốc độ thô hoặc kích thước cài đặt. Đó là khía cạnh nhẹ. Ở đây, một nền tảng lớn, dựa trên container, có thể tự lưu trữ vẫn được chấp nhận miễn là mã nguồn mở và giấy phép miễn phí.

Prism (Stoplight)

Prism biến một tệp OpenAPI hoặc Postman thành một máy chủ giả lập trực tiếp. Trỏ nó đến một đặc tả và nó sẽ phục vụ các phản hồi ví dụ, xác thực các yêu cầu đến theo schema và có thể chạy như một proxy xác thực trước một API thực. Giấy phép: Apache-2.0. Kho lưu trữ: stoplightio/prism.

npm install -g @stoplight/prism-cli
prism mock https://raw.githubusercontent.com/stoplightio/prism/master/examples/petstore.oas2.yaml

Lệnh đó khởi động một máy chủ giả lập trên http://127.0.0.1:4010 được điều khiển hoàn toàn bởi đặc tả. GET /pets trả về ví dụ từ tài liệu OpenAPI của bạn; gửi một payload không hợp lệ và Prism sẽ cho bạn biết phần nào của schema mà bạn đã vi phạm.

Tốt nhất ở: mô phỏng hợp đồng dựa trên đặc tả, nơi tệp OpenAPI là nguồn thông tin đáng tin cậy. Chế độ proxy xác thực là điểm nổi bật; nó phát hiện sự khác biệt giữa đặc tả và API thực của bạn.

Hạn chế: các phản hồi đến từ các ví dụ và schema của bạn, vì vậy các mô phỏng chỉ phong phú như đặc tả. Không có hành vi stateful tích hợp sẵn (không có "tạo rồi đọc lại"). Nó là một công cụ Node, vì vậy bạn cần môi trường chạy Node.

Mockoon CLI

Mockoon nổi tiếng nhất với ứng dụng desktop của nó, nhưng CLI cung cấp cùng một engine không có giao diện đồ họa, được xây dựng cho CI và tự lưu trữ. Bạn thiết kế một môi trường (trong ứng dụng hoặc thủ công) hoặc cung cấp cho nó một tệp OpenAPI, và nó sẽ phục vụ mô phỏng đó. Giấy phép: MIT. Kho lưu trữ: mockoon/mockoon.

npm install -g @mockoon/cli
mockoon-cli start --data ./environment.json --port 3000

Bạn cũng có thể bắt đầu trực tiếp từ một tệp OpenAPI với --data ./openapi.yaml. Thêm --watch để tải lại khi tệp thay đổi và --log-transaction để in nhật ký yêu cầu/phản hồi đầy đủ.

Tốt nhất ở: các phản hồi phong phú, dựa trên quy tắc mà không cần viết mã. Mockoon hỗ trợ tạo mẫu phản hồi, các quy tắc điều kiện và chế độ proxy, vì vậy một điểm cuối có thể trả về các nội dung khác nhau dựa trên yêu cầu. Thiết kế trực quan trong ứng dụng và chạy không giao diện thông qua CLI là một sự phân tách rõ ràng.

Hạn chế: cách tạo thuận tiện nhất là ứng dụng desktop, vì vậy việc chỉnh sửa thủ công tệp JSON môi trường khá phức tạp. Cú pháp tạo mẫu động cũng có một đường cong học tập riêng.

json-server

json-server là cách nhanh nhất để giả lập một REST API. Cung cấp cho nó một tệp JSON và nó sẽ tạo ra các tuyến CRUD đầy đủ (GET, POST, PUT, PATCH, DELETE) với khả năng lưu trữ thực sự trở lại tệp đó. Giấy phép: MIT. Kho lưu trữ: typicode/json-server.

npx json-server db.json

Với một tệp db.json có một mảng "posts" ở cấp cao nhất, bạn ngay lập tức có GET /posts, GET /posts/1, POST /posts và các lệnh khác, cộng với lọc, sắp xếp và phân trang thông qua các tham số truy vấn. POST một bản ghi mới và nó được ghi vào tệp; đọc lại và nó ở đó.

Tốt nhất ở: phát triển frontend trước khi backend tồn tại. Nó có stateful ngay lập tức, điều mà Prism và hầu hết các mô phỏng dựa trên đặc tả không có. Cấu hình bằng không, và npx có nghĩa là bạn thậm chí không cần cài đặt nó.

Hạn chế: nó có quan điểm riêng về hình dạng REST, vì vậy nó sẽ không khớp với một API tùy chỉnh bất kỳ. Không có nhập OpenAPI; tệp JSON là hợp đồng. Không dành cho kiểm tra tải hoặc hành vi giống sản xuất.

WireMock

WireMock là công cụ "nặng ký" trong lĩnh vực giả lập HTTP mã nguồn mở, với hàng triệu lượt tải xuống mỗi tháng. Nó chạy như một tiến trình độc lập được cấu hình qua một API quản trị JSON hoặc từ các tệp stub JSON, và nó xử lý việc khớp yêu cầu, tạo mẫu phản hồi, các kịch bản stateful, chèn lỗi và ghi-và-phát lại. Giấy phép: Apache-2.0. Kho lưu trữ: wiremock/wiremock.

docker run -it --rm -p 8080:8080 wiremock/wiremock:latest
curl -X POST http://localhost:8080/__admin/mappings \
  -H 'Content-Type: application/json' \
  -d '{"request":{"method":"GET","url":"/hello"},"response":{"status":200,"body":"world"}}'

Dòng đầu tiên khởi động WireMock; dòng thứ hai đăng ký một stub thông qua API quản trị của nó. Bây giờ curl http://localhost:8080/hello trả về world. Bạn cũng có thể thả các tệp stub vào một thư mục mappings/ và gắn nó vào container.

Tốt nhất ở: các kịch bản kiểm thử phức tạp. Hành vi stateful, độ trễ và lỗi để mô phỏng một bên thứ ba không ổn định, và proxy-cộng-ghi để nắm bắt một API thực và phát lại sau này. Đây là công cụ khi mô phỏng của bạn cần hoạt động như thứ thật đang được kiểm thử.

Hạn chế: nó là một công cụ JVM, vì vậy container hoặc môi trường chạy Java là cái giá phải trả để sử dụng. Bề mặt cấu hình rộng lớn; các mô phỏng đơn giản có vẻ quá phức tạp. Không có một lệnh "đọc đặc tả và chạy" duy nhất như Prism.

MockServer

MockServer là một công cụ giả lập và proxy HTTP(S) trên một cổng duy nhất, nhắm thẳng vào việc kiểm thử tích hợp. Nó giả lập API, có thể proxy và ghi lại lưu lượng trực tiếp, và cho phép bạn chèn lỗi để kiểm thử cách client của bạn xử lý chúng. Các phiên bản gần đây bổ sung hỗ trợ HTTP/2, gRPC và WebSocket. Giấy phép: Apache-2.0. Kho lưu trữ: mock-server/mockserver.

docker run -d --rm -p 1080:1080 mockserver/mockserver
curl -X PUT 'http://localhost:1080/mockserver/expectation' \
  -H 'Content-Type: application/json' \
  -d '{"httpRequest":{"path":"/order"},"httpResponse":{"body":"{\"status\":\"ok\"}"}}'

Lệnh PUT đăng ký một "kỳ vọng"; sau đó, curl http://localhost:1080/order sẽ trả về JSON của bạn. Các client của MockServer (Java, JavaScript, Ruby, và các ngôn ngữ khác) cho phép bạn đặt các kỳ vọng tương tự từ bên trong mã kiểm thử của mình thay vì thông qua curl.

Tốt nhất ở: giả lập và proxy tại cùng một nơi, cộng với chèn lỗi. Nếu bạn cần xác minh rằng một yêu cầu cụ thể đã được thực hiện một số lần nhất định, API xác minh của MockServer được xây dựng cho mục đích đó. Rất phù hợp với các stack nặng JVM. Xem bài viết các lựa chọn thay thế MockServer của chúng tôi nếu nó không hoàn toàn phù hợp.

Hạn chế: giống như WireMock, nó dựa trên JVM và JSON kỳ vọng dài dòng. Sự trùng lặp với WireMock là có thật; hãy chọn một trong hai dựa trên thư viện client nào phù hợp với stack kiểm thử của bạn.

Microcks

Microcks là lựa chọn nền tảng, và nó là một dự án ươm tạo của Cloud Native Computing Foundation. Nó biến các dự án OpenAPI, AsyncAPI, gRPC, GraphQL, bộ sưu tập Postman và SoapUI thành các mô phỏng trực tiếp, và nó tái sử dụng các hợp đồng đó để chạy các kiểm thử tuân thủ chống lại triển khai thực tế của bạn. Nó bao gồm các giao thức hướng sự kiện và bất đồng bộ, không chỉ HTTP. Giấy phép: Apache-2.0. Kho lưu trữ: microcks/microcks.

docker run -d --name microcks -p 8585:8080 quay.io/microcks/microcks-uber:latest

Lệnh đó chạy hình ảnh "tất cả trong một"; mở http://localhost:8585 và nhập một spec để nhận các điểm cuối giả lập. Công cụ đi kèm microcks-cli điều khiển một máy chủ đang chạy từ CI:

microcks-cli import 'petstore.yaml:true' \
  --microcksURL=http://localhost:8585/api \
  --keycloakClientId=... --keycloakClientSecret=...

Tốt nhất ở: các nhóm muốn có một danh mục giả lập được quản lý duy nhất trên nhiều API và giao thức, với kiểm thử hợp đồng được tích hợp sẵn. Khả năng giả lập bất đồng bộ/hướng sự kiện (Kafka, MQTT, và các công cụ tương tự) rất hiếm trong lĩnh vực này.

Hạn chế: đây là một máy chủ, không phải một tệp thực thi duy nhất. Một lưu ý quan trọng: microcks-cli kích hoạt các kiểm thử và nhập các artifact chống lại một phiên bản Microcks đang chạy; bản thân nó không phục vụ các mô phỏng. Vì vậy, CLI là một client, và bạn vẫn phải chạy nền tảng. Đối với một mô phỏng cục bộ một lần, nó nặng hơn Prism hoặc json-server.

Một lưu ý chân thực: Apidog

Apidog không phải là mã nguồn mở, vì vậy nó không có một vị trí được đánh số ở đây. Nhưng nếu bạn nhận thấy rằng các công cụ trên giải quyết các vấn đề khác nhau (mô phỏng dựa trên đặc tả, CRUD stateful, kiểm thử hợp đồng) và bạn không muốn ghép chúng lại với nhau, thì nó đáng để nhắc đến. Apidog là một nền tảng freemium có gói miễn phí bao gồm mô phỏng, và apidog mock trong apidog-cli cho phép bạn quản lý các kỳ vọng mô phỏng từ terminal cùng với thiết kế, kiểm thử và tài liệu trong một dự án duy nhất. Mô phỏng thông minh tự động tạo ra các giá trị trường thực tế từ schema của bạn, vì vậy bạn không cần phải viết thủ công các nội dung ví dụ.

Sự đánh đổi rõ ràng: bạn có một quy trình làm việc tích hợp và gói miễn phí thay vì mã nguồn mở và tự lưu trữ. Nếu mã nguồn mở hoặc tự lưu trữ trong môi trường không có kết nối mạng là một yêu cầu bắt buộc, một trong sáu công cụ trên là câu trả lời của bạn. Nếu một quy trình thiết kế-đến-mô phỏng tích hợp quan trọng hơn, Apidog là lựa chọn thay thế cho việc ghép nối nhiều công cụ lại với nhau.

Cách lựa chọn

Công cụ Tốt nhất cho Cài đặt Giấy phép Ghi chú
Prism Mô phỏng dựa trên đặc tả + proxy xác thực npm i -g @stoplight/prism-cli Apache-2.0 OpenAPI/Postman đầu vào, giả lập đầu ra; không trạng thái
Mockoon CLI Phản hồi dựa trên quy tắc, không cần code npm i -g @mockoon/cli MIT Thiết kế trong ứng dụng, chạy không giao diện
json-server REST giả lập có trạng thái cho frontend npx json-server db.json MIT CRUD đầy đủ với lưu trữ, không cần cấu hình
WireMock Các kịch bản kiểm thử phức tạp, lỗi docker run wiremock/wiremock Apache-2.0 JVM; ghi-và-phát lại; có trạng thái
MockServer Giả lập + proxy + xác minh docker run mockserver/mockserver Apache-2.0 JVM; HTTP/2, gRPC, WebSocket
Microcks Danh mục nhiều API/giao thức được quản lý docker run microcks-uber Apache-2.0 Nền tảng CNCF; CLI là client, không phải server
Apidog (không phải OSS) Quy trình thiết kế-đến-mô phỏng tích hợp npm i -g apidog-cli Freemium Gói miễn phí; apidog mock trong một dự án

Hãy chọn theo hình dạng, không phải sự phổ biến. Đối với một mô phỏng đọc tệp OpenAPI của bạn và thực thi nó, hãy bắt đầu với Prism. Đối với CRUD có trạng thái trước khi backend hoàn thành, json-server thắng về tốc độ. Đối với các kịch bản kiểm thử phong phú với lỗi và ghi-và-phát lại, WireMock hoặc MockServer; hãy chọn theo thư viện client. Đối với một danh mục chia sẻ, đa giao thức với kiểm thử hợp đồng, Microcks. Để biết hình dạng nào phù hợp với tình huống nào, hướng dẫn các trường hợp sử dụng giả lập API ánh xạ các công cụ với các kịch bản.

Kết luận

Các công cụ giả lập CLI mã nguồn mở cung cấp cho bạn một máy chủ giả lập mà bạn có thể đọc, tự lưu trữ và chạy trong CI miễn phí. Prism và json-server bao gồm các trường hợp phổ biến chỉ với một lệnh; WireMock và MockServer xử lý các kịch bản kiểm thử khó; Microcks mở rộng nó thành một danh mục được quản lý trên các giao thức. Tất cả sáu công cụ đều là MIT hoặc Apache-2.0, tất cả đều có thể tự lưu trữ, tất cả đều nằm trên GitHub công khai.

Nếu bạn muốn quản lý các mô phỏng cùng với thiết kế API, kiểm thử và tài liệu của mình mà không cần kết nối các công cụ riêng biệt lại với nhau, hãy Tải xuống Apidog và thử apidog mock trên gói miễn phí. Nó không phải là mã nguồn mở, nhưng nó là một nơi để chạy toàn bộ quy trình từ dòng lệnh vào CI.

Thực hành thiết kế API trong Apidog

Khám phá cách dễ dàng hơn để xây dựng và sử dụng API