DEV Community

Cover image for Hướng Dẫn Triển Khai Cloud Mock Server Chia Sẻ với Apidog
Sebastian Petrus
Sebastian Petrus

Posted on • Originally published at apidog.com

Hướng Dẫn Triển Khai Cloud Mock Server Chia Sẻ với Apidog

Nhóm frontend thường bị chặn khi thiết kế đã duyệt nhưng API backend chưa sẵn sàng. Mock cục bộ có thể giúp bạn phát triển nhanh, nhưng nó ngừng hoạt động khi bạn tắt máy hoặc đồng đội ở múi giờ khác cần truy cập. Với Apidog Cloud Mock, bạn có thể cung cấp một URL công khai tại mock.apidog.com, để frontend, QA và đối tác tích hợp sử dụng API giả lập 24/7 trước khi backend được triển khai. Nếu cần nền tảng về mocking, xem bài viết mock API là gì và khi nào nên sử dụngtổng quan HTTP request/response của MDN.

Dùng thử Apidog ngay hôm nay

Cloud Mock là gì và vì sao mock cục bộ không đủ

Apidog tạo mock endpoint cho API bạn thiết kế. Mock cục bộ chạy từ ứng dụng Apidog trên máy của bạn, nên chỉ phản hồi khi máy đang bật. Nó phù hợp để gỡ lỗi cá nhân, nhưng không phù hợp khi frontend, QA hoặc đối tác cần dùng chung endpoint.

Cloud Mock cung cấp endpoint mock hoạt động độc lập với máy cá nhân. Bạn có thể:

  • Thiết kế API contract.
  • Bật Cloud Mock.
  • Chia sẻ URL cho frontend, QA hoặc đối tác.
  • Cho phép mọi người gọi API mock 24/7.

Frontend có thể phát triển dựa trên response thực tế theo schema. QA có thể viết test case sớm. Đối tác có thể bắt đầu tích hợp mà không cần chờ sprint backend hoàn tất. Với nhóm phân tán, xem thêm hướng dẫn chia sẻ mock server và môi trường với các nhóm toàn cầu.

Kích hoạt Cloud Mock và lấy URL công khai

Ví dụ: bạn đang thiết kế dịch vụ users với endpoint GET /users.

Bước 1: Bật Cloud Mock

Trong dự án Apidog, mở:

Cài đặt Dự án > Cài đặt Tính năng > Cài đặt Mock

Bật Cloud Mock.

Bạn chỉ cần thực hiện một lần cho mỗi dự án. Sau khi bật, endpoint sẽ có cả URL mock cục bộ và URL Cloud Mock.

Bật Cloud Mock

Bước 2: Sao chép URL Cloud Mock

Mở endpoint GET /users, chuyển sang tab Mock, rồi sao chép URL Cloud Mock.

Ví dụ:

https://mock.apidog.com/m1/2689726-0-default/users?apidogToken=GdfNrEm6lxM9nDGGIMCWC1OPSiZ6hGOi
Enter fullscreen mode Exit fullscreen mode

URL thường có cấu trúc:

mock.apidog.com/m1/<projectId>-<num>-<env>/<path>
Enter fullscreen mode Exit fullscreen mode

Không nên tự tạo URL thủ công. Hãy luôn dùng URL được Apidog tạo và sao chép từ tab Mock.

Bước 3: Kiểm tra response trong Apidog

Trước khi chia sẻ URL, gửi request thử từ tab Mock để kiểm tra dữ liệu sinh tự động có đúng schema hay không.

Ví dụ response của GET /users:

[
  {
    "id": 1,
    "name": "Amelia Turner",
    "email": "amelia.turner@example.com",
    "city": "Portland"
  },
  {
    "id": 2,
    "name": "Marcus Bell",
    "email": "marcus.bell@example.com",
    "city": "Austin"
  }
]
Enter fullscreen mode Exit fullscreen mode

Apidog đọc tên trường và kiểu dữ liệu trong schema để tạo dữ liệu phù hợp. Nhờ vậy, frontend có thể xây dựng bảng, danh sách, form và trạng thái UI trên dữ liệu gần với dữ liệu thật.

Bước 4: Gọi URL từ trình duyệt hoặc code

Với request GET, bạn có thể dán URL Cloud Mock trực tiếp vào trình duyệt để xem JSON response.

Để gọi từ terminal:

curl "https://mock.apidog.com/m1/2689726-0-default/users?apidogToken=GdfNrEm6lxM9nDGGIMCWC1OPSiZ6hGOi"
Enter fullscreen mode Exit fullscreen mode

Từ đây, quy trình làm việc rất đơn giản:

  1. Thiết kế endpoint.
  2. Bật Cloud Mock.
  3. Kiểm tra response.
  4. Chia sẻ URL cho nhóm.

Bảo mật mock bằng token

URL công khai rất tiện, nhưng mock có thể chứa cấu trúc của tính năng chưa phát hành hoặc tích hợp đối tác. Trong trường hợp đó, hãy bật xác thực token.

Mở:

Cài đặt Dự án > Cài đặt Tính năng > Cài đặt Mock

Đặt quyền truy cập thành Xác thực Token.

Khi bật, mọi request phải có apidogToken hợp lệ. Bạn có thể gửi token theo ba cách.

Cách 1: Query parameter

curl "https://mock.apidog.com/m1/2689726-0-default/users?apidogToken=GdfNrEm6lxM9nDGGIMCWC1OPSiZ6hGOi"
Enter fullscreen mode Exit fullscreen mode

Cách 2: Request header

Cách này phù hợp hơn khi bạn không muốn token xuất hiện trong URL hoặc URL log.

curl "https://mock.apidog.com/m1/2689726-0-default/users" \
  -H "apidogToken: GdfNrEm6lxM9nDGGIMCWC1OPSiZ6hGOi"
Enter fullscreen mode Exit fullscreen mode

Ví dụ với fetch:

const response = await fetch(
  "https://mock.apidog.com/m1/2689726-0-default/users",
  {
    headers: {
      apidogToken: "GdfNrEm6lxM9nDGGIMCWC1OPSiZ6hGOi"
    }
  }
);

const users = await response.json();
Enter fullscreen mode Exit fullscreen mode

Cách 3: Form body

Bạn cũng có thể truyền apidogToken trong body của request form-data hoặc x-www-form-urlencoded.

Nếu bật xác thực token sau khi đã chia sẻ URL không có token, hãy thông báo cho frontend, QA và đối tác. Các request cũ sẽ bị từ chối cho đến khi họ thêm token.

Tạo dữ liệu mock theo locale và múi giờ

Mock trả về "name": "string" không giúp bạn phát hiện vấn đề UI. Dữ liệu gần thực tế giúp frontend kiểm tra:

  • Tràn nội dung.
  • Độ dài tên và địa chỉ.
  • Định dạng số điện thoại.
  • Script không phải Latin.
  • Hiển thị ngày giờ theo khu vực.

Apidog sử dụng Faker.js để tạo dữ liệu mock. Bạn có thể cấu hình locale ở cấp dự án hoặc cấp trường.

Locale mặc định theo ngôn ngữ dự án

Mở:

Cài đặt Dự án > Cài đặt Cơ bản

Ngôn ngữ bạn chọn tại đây trở thành locale mặc định cho dữ liệu mock. Ví dụ, khi đặt dự án sang tiếng Pháp, tên và địa chỉ được tạo sẽ theo phong cách Pháp mà không cần cấu hình từng trường.

Ghi đè locale cho toàn dự án

Nếu locale mock cần khác ngôn ngữ giao diện của dự án, mở:

Cài đặt Dự án > Cài đặt Tính năng > Cài đặt Mock

Chọn locale Faker trong danh sách thả xuống. Locale này sẽ ghi đè locale mặc định trong Cài đặt Cơ bản cho toàn bộ trường mock của dự án.

Ví dụ, bạn có thể đặt locale Nhật Bản để kiểm tra UI với tên, địa chỉ và số điện thoại theo khu vực Nhật Bản. Điều này đặc biệt hữu ích khi kiểm thử i18n và bố cục với script không phải Latin.

Xem thêm cách Apidog đọc schema để sinh dữ liệu trong hướng dẫn mock thông minh của Apidog.

Ghi đè locale cho từng trường

Khi một response chứa dữ liệu từ nhiều khu vực, hãy đặt locale trực tiếp trong biểu thức mock:

{{$person.fullName(locale='ja')}}
Enter fullscreen mode Exit fullscreen mode

Ví dụ này chỉ tạo tên tiếng Nhật cho trường đó:

田中 太郎
Enter fullscreen mode Exit fullscreen mode

Thứ tự ưu tiên locale là:

  1. Locale cấp trường.
  2. Locale cấp dự án trong Mock Settings.
  3. Locale mặc định trong Basic Settings.

Tài liệu hiển thị ja như một ví dụ, nhưng không công bố danh sách locale đầy đủ. Hãy xác nhận mã locale mục tiêu trong tài liệu mock của Apidog và tham khảo tài liệu localization của Faker.js.

Đồng bộ múi giờ

Bạn cũng có thể cấu hình múi giờ mặc định ở:

Cài đặt Dự án > Cài đặt Tính năng > Cài đặt Mock

Với trường cụ thể, sử dụng tham số timeZone trong biểu thức mock. Điều này hữu ích cho các trường như createdAt, updatedAt hoặc lịch hẹn, giúp dữ liệu giả lập phản ánh đúng khu vực người dùng mà bạn đang kiểm thử.

Các cấu hình locale và múi giờ giúp cùng một schema có thể mô phỏng người dùng tại Nhật Bản, Đức hoặc nhiều khu vực khác nhau. Xem thêm các trường hợp sử dụng mock API thực tế.

Cloud Mock và mock tự lưu trữ

Cloud Mock phù hợp khi bạn cần endpoint được lưu trữ sẵn, không cần vận hành và có thể chia sẻ ngay.

Tuy nhiên, tổ chức của bạn có thể có yêu cầu về lưu trú dữ liệu hoặc chính sách không cho phép lưu lượng kiểm thử đi qua cloud của nhà cung cấp. Trong trường hợp đó, Apidog hỗ trợ chạy mock server trên hạ tầng riêng.

Sự đánh đổi:

Lựa chọn Phù hợp khi Đánh đổi
Cloud Mock Cần triển khai nhanh, chia sẻ URL ngay, không muốn vận hành server Lưu lượng đi qua hạ tầng Apidog
Tự lưu trữ Cần kiểm soát hạ tầng hoặc tuân thủ chính sách nội bộ Bạn phải tự vận hành dịch vụ

Nếu cần tự lưu trữ, xem hướng dẫn tự lưu trữ mock server Apidog. Để so sánh các lựa chọn khác, xem so sánh công cụ mock API trực tuyến.

Các tính năng Cloud Mock và locale được mô tả ở đây không nêu yêu cầu gói cụ thể. Hãy kiểm tra trực tiếp trong workspace của bạn. Bạn có thể tải xuống Apidog để thử quy trình trên.

Dùng Apidog CLI để giữ mock đồng bộ với API contract

Cloud Mock được phục vụ bởi hạ tầng Apidog, không phải bởi tiến trình bạn chạy trong terminal. Vì vậy, Apidog CLI không khởi động hoặc phục vụ mock server.

Vai trò của CLI là giúp giữ API contract, endpoint và schema luôn chính xác. Khi schema thay đổi, Cloud Mock có thể phản ánh dữ liệu mới dựa trên schema đó.

Một quy trình điển hình:

  1. Dùng Apidog hoặc coding agent để tạo/cập nhật endpoint và schema.
  2. Cloud Mock sinh response theo schema hiện tại.
  3. Frontend tiếp tục phát triển mà không chờ backend.
  4. Khi backend hoàn thành, chạy test scenario bằng CLI trên cùng contract.

Ví dụ chạy một test scenario đã lưu:

apidog run -t <scenario_id> -e <env_id> -r cli
Enter fullscreen mode Exit fullscreen mode

Trong đó:

  • -t <scenario_id>: ID của test scenario.
  • -e <env_id>: ID môi trường chạy test.
  • -r cli: xuất kết quả theo định dạng CLI.

Thay vì tự nhập ID, hãy mở scenario trong Apidog và sao chép lệnh được tạo sẵn. Để đưa bước này vào pipeline, xem hướng dẫn chạy Apidog trong pipeline CI/CD.

Câu hỏi thường gặp

URL Cloud Mock có hoạt động khi tôi đóng Apidog không?

Có. Cloud Mock được phục vụ từ hạ tầng Apidog, nên không phụ thuộc vào việc laptop của bạn có bật hay Apidog có đang mở hay không.

Tôi có thể mở URL Cloud Mock trong trình duyệt không?

Có, với request GET. Dán URL đầy đủ, bao gồm apidogToken nếu cần, vào thanh địa chỉ để xem JSON response.

Với các HTTP method khác hoặc khi không muốn token nằm trong URL, hãy dùng curl, Postman hoặc code frontend và truyền token bằng header.

Điều gì xảy ra nếu request không có token?

Nếu quyền truy cập được đặt thành Xác thực Token, request không có apidogToken hợp lệ sẽ bị từ chối.

Bạn có thể truyền token qua:

  • Query string.
  • Request header.
  • Form body.

Làm sao tạo dữ liệu mock cho một quốc gia cụ thể?

Bạn có ba cấp cấu hình:

  1. Đặt ngôn ngữ dự án trong Cài đặt Cơ bản.
  2. Ghi đè locale cho dự án trong Cài đặt Tính năng > Cài đặt Mock.
  3. Ghi đè theo trường bằng locale, ví dụ:
{{$person.fullName(locale='ja')}}
Enter fullscreen mode Exit fullscreen mode

Locale cấp trường ưu tiên hơn locale cấp dự án; locale cấp dự án ưu tiên hơn thiết lập cơ bản. Xem thêm hướng dẫn mock thông minh.

Nên dùng Cloud Mock hay công cụ mock không giao diện?

Dùng Cloud Mock khi bạn muốn endpoint được lưu trữ, ít bảo trì và liên kết trực tiếp với thiết kế API.

Nếu cần mock chạy trong quy trình build tự động mà không cần giao diện, xem bài so sánh công cụ mock không giao diện. Hầu hết công cụ mock đều dựa trên API contract, thường là OpenAPI, nên việc duy trì một đặc tả rõ ràng luôn mang lại lợi ích.

Tóm tắt

Mock cục bộ chỉ giúp một người phát triển. Cloud Mock biến API mock thành URL mock.apidog.com mà frontend, QA và đối tác có thể dùng chung.

Quy trình triển khai:

  1. Thiết kế endpoint và schema.
  2. Bật Cloud Mock.
  3. Kiểm tra response được tạo.
  4. Bật token nếu cần bảo vệ endpoint.
  5. Cấu hình locale và múi giờ để dữ liệu thực tế hơn.
  6. Chia sẻ URL để frontend không phải chờ backend.

Tải xuống Apidog để thiết lập Cloud Mock đầu tiên của bạn.

Top comments (0)