Nếu bạn cần một API endpoint giả trả về JSON, mã trạng thái và HTTP header cụ thể mà không phải dựng backend, Mocky là một lựa chọn nhanh. Bài viết này hướng dẫn Mocky là gì, cách tạo một mock endpoint, khi nào nên dùng, và khi nào nên chuyển sang một nền tảng mock đầy đủ hơn. Nếu bạn muốn xem bức tranh tổng quan, hãy đọc thêm bài so sánh các công cụ API mocking trực tuyến hoặc xem kho mã nguồn mở của Mocky.
Mocky là gì?
Mocky là một dịch vụ web miễn phí, mã nguồn mở, dùng để tạo phản hồi HTTP tùy chỉnh.
Thay vì viết backend hoặc dựng server mock, bạn cấu hình phản hồi ngay trong trình duyệt:
- Chọn HTTP status code.
- Nhập response body.
- Thêm HTTP headers nếu cần.
- Cấu hình độ trễ nếu muốn mô phỏng mạng chậm.
- Lưu lại và nhận một URL cố định.
Mọi request gửi đến URL đó sẽ nhận đúng phản hồi bạn đã định nghĩa.
Mocky được Julien Lafont xây dựng và phát hành theo giấy phép Apache 2.0. Bản hosted nằm tại mocky.io. Vì mã nguồn công khai, bạn cũng có thể tự host nếu muốn vận hành phiên bản riêng.
Nói ngắn gọn: Mocky giúp bạn “đặt một response cố định phía sau một URL”.
Bạn có thể cấu hình gì trong Mocky?
Mocky phù hợp với các tình huống kiểm thử client cần phản hồi HTTP đơn giản.
Bạn có thể cấu hình:
-
Status code: ví dụ
200,404,500. - Response body: thường là JSON, nhưng có thể là bất kỳ nội dung text nào.
-
HTTP headers: ví dụ
Content-Type, header tùy chỉnh, header mô phỏng API thật. - Response delay: dùng để mô phỏng mạng chậm hoặc backend phản hồi lâu.
Sau khi lưu, Mocky tạo một URL dạng:
https://run.mocky.io/v3/<some-id>
Bạn có thể dùng URL này trong frontend, test script, Postman/cURL hoặc CI pipeline.
Ví dụ nhanh: mock API user bằng Mocky
Giả sử backend chưa sẵn sàng, nhưng frontend cần dữ liệu user để render UI.
Bạn có thể tạo response trong Mocky như sau:
{
"id": 42,
"name": "Ada Lovelace",
"role": "admin"
}
Cấu hình:
Status: 200
Content-Type: application/json
Sau khi lưu, Mocky trả về một URL cố định. Frontend chỉ cần gọi URL đó:
const res = await fetch("https://run.mocky.io/v3/<some-id>");
const user = await res.json();
console.log(user.name); // Ada Lovelace
Cách này rất hữu ích khi bạn cần unblock frontend trước khi backend hoàn thành. Nếu muốn tìm hiểu thêm mô hình này, xem hướng dẫn mock API trực tuyến mà không cần thiết lập máy chủ.
Khi nào nên dùng Mocky?
Mocky là lựa chọn tốt khi nhu cầu mock của bạn nhỏ, tĩnh và dùng nhanh.
Nên dùng Mocky khi:
- Bạn cần một response tĩnh duy nhất.
- Bạn muốn tạo mock URL nhanh mà không cần tài khoản.
- Bạn cần chia sẻ một payload cố định với đồng đội.
- Bạn đang tái hiện bug bằng một response cụ thể.
- Bạn muốn mock lỗi như 500 Internal Server Error.
- Bạn không cần response thay đổi theo request.
Ví dụ các use case phù hợp:
GET /mock-user
-> luôn trả về cùng một user JSON
GET /mock-error
-> luôn trả về 500 với body cố định
GET /mock-empty-list
-> luôn trả về []
Với các trường hợp này, Mocky rất hiệu quả: miễn phí, nhanh, không cần setup, có URL dùng được trong vòng chưa đầy một phút.
Giới hạn của Mocky
Sự đơn giản của Mocky cũng là giới hạn chính của nó.
Mỗi URL Mocky đại diện cho một response cố định. Khi API mock của bạn bắt đầu giống một hệ thống thật hơn, mô hình này nhanh chóng trở nên khó quản lý.
Các giới hạn phổ biến:
Không có dữ liệu động
Mọi request đều nhận cùng một response. Bạn không thể tự động trả về user khác nhau cho/users/1và/users/2.Không match request
Mocky không phân nhánh response theo query params, path params, headers hoặc request body.Khó tổ chức nhiều endpoint
Một API thật có thể có hàng chục endpoint. Nếu mỗi endpoint là một link Mocky riêng, việc quản lý sẽ rối.Hợp tác nhóm hạn chế
Không có workspace chung, versioning, quyền nhóm hoặc luồng review.Không gắn với schema/OpenAPI
Mock response và API spec nằm ở hai nơi khác nhau, nên dễ bị lệch.
Ví dụ, với Mocky bạn có thể tạo ba link riêng:
https://run.mocky.io/v3/user-response
https://run.mocky.io/v3/order-list-response
https://run.mocky.io/v3/auth-response
Nhưng các link này không thuộc cùng một base URL, không có cấu trúc API chung và khó chuyển đổi môi trường.
Khi bạn bắt đầu cần nhiều endpoint, dữ liệu động hoặc collaboration, bạn nên cân nhắc dùng một mock server/API platform đầy đủ hơn. Nếu chi phí là yếu tố quan trọng, xem thêm hướng dẫn về các máy chủ mock API miễn phí và giá rẻ.
Giải pháp thay thế Mocky: Apidog
Apidog giữ lại điểm mạnh của Mocky: tạo response tùy chỉnh phía sau một URL có thể chia sẻ.
Điểm khác biệt là Apidog mở rộng mô hình đó thành một môi trường mock API đầy đủ hơn:
- Quản lý nhiều endpoint trong một project.
- Tạo mock dựa trên schema/API design.
- Hỗ trợ dữ liệu động.
- Hỗ trợ rule có điều kiện.
- Phù hợp hơn cho team collaboration.
Mocky trả lời câu hỏi:
“Làm sao tạo nhanh một response cố định miễn phí?”
Apidog trả lời câu hỏi:
“Làm sao tạo mock cho toàn bộ API và giữ nó đồng bộ khi dự án phát triển?”
Apidog bổ sung gì so với Mocky?
Một số khả năng hữu ích khi bạn vượt qua nhu cầu mock tĩnh:
Mock thông minh và dữ liệu được tạo bởi AI
Apidog có thể suy luận dữ liệu hợp lý từ tên field và schema. Ví dụemailtrả về email,createdAttrả về ngày.Hỗ trợ Faker.js
Bạn có thể dùng Faker.js để tạo dữ liệu mock động, giúp mỗi request có payload thực tế hơn.Mock rule nâng cao
Có thể trả về response khác nhau dựa trên query params hoặc request body.Mock dựa trên schema
Mock được tạo từ thiết kế API/OpenAPI, giúp spec và mock ít bị lệch.Workspace cho nhóm
Các mock nằm trong project dùng chung, thay vì phân tán thành nhiều link riêng lẻ.
Bạn vẫn có thể dùng Apidog theo cách đơn giản như Mocky: tạo một endpoint, đặt status code, header, JSON body, rồi chia sẻ mock URL.
So sánh nhanh Mocky và Apidog
| Khả năng | Mocky | Apidog |
|---|---|---|
| Mã trạng thái, header, body tùy chỉnh phía sau một URL | Có | Có |
| Miễn phí để bắt đầu, không cần setup phức tạp | Có | Có, với gói miễn phí |
| Response tĩnh duy nhất | Có | Có |
| Dữ liệu động với Faker.js/mock thông minh | Không | Có |
| Request matching/rule điều kiện | Không | Có |
| Nhiều endpoint trong một project | Không | Có |
| Mock dựa trên schema/OpenAPI | Không | Có |
| Workspace nhóm và quản lý phiên bản | Không | Có |
| Tùy chọn tự host | Có, vì mã nguồn mở | Có tùy chọn Cloud và tự host |
Nếu bạn muốn so sánh thêm, xem danh sách các công cụ mock API tốt nhất và bài tổng hợp các công cụ mock endpoint REST.
Cách thay thế một URL Mocky bằng Apidog
Nếu bạn đang có một URL Mocky và muốn chuyển sang Apidog, quy trình có thể bắt đầu rất nhỏ.
Bước 1: Tạo project
Tải xuống Apidog, mở ứng dụng và tạo một project mới.
Bước 2: Thêm endpoint tương ứng
Ví dụ bạn đang mock user 42, hãy tạo endpoint:
GET /users/42
Bước 3: Định nghĩa response
Cấu hình response tương tự như trong Mocky:
Status: 200
Content-Type: application/json
Response body:
{
"id": 42,
"name": "Ada Lovelace",
"role": "admin"
}
Bước 4: Bật mock
Apidog sẽ tạo mock URL hosted cho endpoint đó.
Frontend hoặc test của bạn chỉ cần đổi URL cũ:
const res = await fetch("https://run.mocky.io/v3/<old-id>");
sang mock URL mới từ Apidog:
const res = await fetch("https://<apidog-mock-host>/users/42");
Bước 5: Mở rộng khi cần
Sau khi đã có endpoint đầu tiên, bạn có thể thêm dần:
- Endpoint mới.
- Response cho nhiều status code.
- Dữ liệu động.
- Rule theo query/body.
- Import OpenAPI nếu đã có spec.
Bạn không cần migration toàn bộ trong một lần. Nhiều team giữ các link Mocky cũ hoạt động, sau đó chuyển dần các endpoint quan trọng sang Apidog.
Nếu đã có file OpenAPI, bạn có thể import vào Apidog để tạo mock cho nhiều endpoint cùng lúc, thay vì tạo lại từng response thủ công.
Câu hỏi thường gặp
Mocky có miễn phí không?
Có. Mocky miễn phí và mã nguồn mở theo giấy phép Apache 2.0. Bạn không cần tài khoản để tạo mock. Response được lưu phía server, nên URL bạn nhận được vẫn có thể được gọi lại sau đó.
Nếu bạn cần nhiều hơn một response cố định, Apidog cung cấp gói miễn phí với mock động và tính năng làm việc nhóm.
Sự khác biệt giữa mocky.io và một mock server là gì?
Một URL Mocky là một response được đóng gói sẵn.
Một mock server mô phỏng nhiều phần hơn của API thật:
- Nhiều endpoint.
- Request matching.
- Response khác nhau theo input.
- Dữ liệu mock động.
- Cấu trúc project rõ ràng.
Nếu bạn mới làm quen với khái niệm này, xem thêm bài giải thích API mock là gì.
Tôi có thể trả về status code và header tùy chỉnh với Mocky không?
Có. Đây là use case chính của Mocky.
Bạn có thể cấu hình:
Status: 404
Content-Type: application/json
X-Debug-Source: mocky
Response body:
{
"error": "User not found"
}
Giới hạn là response này luôn giống nhau, bất kể request gửi lên có query, body hoặc header gì.
Khi nào nên chuyển từ Mocky sang nền tảng mock đầy đủ?
Bạn nên chuyển khi cần:
- Dữ liệu động hoặc dữ liệu thực tế hơn.
- Response thay đổi theo request.
- Nhiều endpoint được tổ chức trong cùng một project.
- Mock gắn với OpenAPI/schema.
- Workspace dùng chung cho team.
- Quản lý version và collaboration tốt hơn.
Cho đến lúc đó, sự đơn giản của Mocky là lợi thế.
Tổng kết
Mocky là cách nhanh và sạch để đặt một HTTP response tùy chỉnh phía sau một URL. Với các mock tĩnh, nhỏ, dùng một lần, Mocky là lựa chọn rất phù hợp.
Khi bạn cần dữ liệu động, request matching, nhiều endpoint hoặc cộng tác nhóm, mô hình “một URL, một response” sẽ bắt đầu hạn chế.
Đó là lúc Apidog hữu ích hơn: bạn vẫn có thể tạo mock URL đơn giản, nhưng có thêm schema-based mock, dữ liệu động và workspace cho team. Tải xuống Apidog để tạo mock API đầu tiên miễn phí.
Top comments (0)