DEV Community

Cover image for Mocky là gì và lựa chọn thay thế Mocky tốt nhất cho phản hồi HTTP giả lập tùy chỉnh
Sebastian Petrus
Sebastian Petrus

Posted on • Originally published at apidog.com

Mocky là gì và lựa chọn thay thế Mocky tốt nhất cho phản hồi HTTP giả lập tùy chỉnh

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.

Thử Apidog ngay hôm nay

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:

  1. Chọn HTTP status code.
  2. Nhập response body.
  3. Thêm HTTP headers nếu cần.
  4. Cấu hình độ trễ nếu muốn mô phỏng mạng chậm.
  5. 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>
Enter fullscreen mode Exit fullscreen mode

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"
}
Enter fullscreen mode Exit fullscreen mode

Cấu hình:

Status: 200
Content-Type: application/json
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode
GET /mock-error
-> luôn trả về 500 với body cố định
Enter fullscreen mode Exit fullscreen mode
GET /mock-empty-list
-> luôn trả về []
Enter fullscreen mode Exit fullscreen mode

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/1/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
Enter fullscreen mode Exit fullscreen mode

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ụ email trả về email, createdAt trả 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
Miễn phí để bắt đầu, không cần setup phức tạp Có, với gói miễn phí
Response tĩnh duy nhất
Dữ liệu động với Faker.js/mock thông minh Không
Request matching/rule điều kiện Không
Nhiều endpoint trong một project Không
Mock dựa trên schema/OpenAPI Không
Workspace nhóm và quản lý phiên bản Không
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
Enter fullscreen mode Exit fullscreen mode

Bước 3: Định nghĩa response

Cấu hình response tương tự như trong Mocky:

Status: 200
Content-Type: application/json
Enter fullscreen mode Exit fullscreen mode

Response body:

{
  "id": 42,
  "name": "Ada Lovelace",
  "role": "admin"
}
Enter fullscreen mode Exit fullscreen mode

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>");
Enter fullscreen mode Exit fullscreen mode

sang mock URL mới từ Apidog:

const res = await fetch("https://<apidog-mock-host>/users/42");
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

Response body:

{
  "error": "User not found"
}
Enter fullscreen mode Exit fullscreen mode

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)