Dữ liệu mẫu

Tạo dữ liệu mẫu theo quốc gia

Sinh hồ sơ hư cấu gồm tên, địa chỉ, điện thoại, email đúng định dạng của 75 quốc gia. Xuất ra JSON, CSV hoặc câu lệnh SQL.

Chọn trường cần lấy

Đường dẫn API cho đúng các lựa chọn ở trên

https://huynhthang.com/api/fake?locale=vi&count=5

Toàn bộ dữ liệu là hư cấu, sinh ngẫu nhiên trong trình duyệt của bạn, không tương ứng với người thật nào. Công cụ cố ý không sinh số thẻ ngân hàng, số căn cước hay số bảo hiểm xã hội.

Công cụ này chạy hoàn toàn trong trình duyệt của bạn — dữ liệu không rời khỏi máy.

API

Hướng dẫn dùng API

Toàn bộ công cụ trên trang này cũng dùng được qua API. Không cần khoá, không cần đăng ký, không giới hạn số ngày dùng thử. Đã mở CORS nên gọi thẳng từ JavaScript trong trình duyệt cũng được.

Địa chỉ

GET https://huynhthang.com/api/fake?locale=vi&count=5

Tham số

localeviMã quốc gia. Bắt buộc phải nằm trong danh sách 75 mã ở mục dưới. Mặc định en_US.
count1 – 100Số bản ghi trả về. Vượt quá 100 sẽ bị cắt xuống 100. Mặc định 1.
seedabcChuỗi bất kỳ. Cùng một hạt giống, cùng các tham số khác thì luôn trả về đúng bộ dữ liệu cũ — dùng khi cần bộ dữ liệu thử nghiệm cố định.
fieldsfullName,emailDanh sách trường cách nhau bằng dấu phẩy. Bỏ trống là lấy cả 15 trường.
minAge18Tuổi nhỏ nhất. Mặc định 18.
maxAge65Tuổi lớn nhất. Nếu nhỏ hơn minAge thì tự lấy bằng minAge.

Gọi thử bằng

curl "https://huynhthang.com/api/fake?locale=vi&count=5"

Chạy thật ngay tại đây

Bấm nút để gọi API thật và xem nguyên văn câu trả lời.

Danh sách quốc gia

GET https://huynhthang.com/api/fake/locales

Trả về 75 mã kèm mã vùng và tên nước bằng tiếng Anh. Kết quả không đổi nên có thể lưu đệm một ngày.

Mã lỗi

400bad_localeMã quốc gia không nằm trong danh sách. Câu trả lời có kèm đường dẫn tới danh sách đầy đủ.
400bad_fieldsCó tên trường không tồn tại. Câu trả lời liệt kê tên sai và toàn bộ tên hợp lệ.
429rate_limitedGọi quá nhanh. Câu trả lời có kèm header Retry-After cho biết cần chờ bao nhiêu giây.

Giới hạn 60 điểm mỗi phút cho mỗi địa chỉ IP. Mỗi lượt gọi tốn 1 điểm, cộng thêm 1 điểm cho mỗi 25 bản ghi — tức khoảng 60 lượt lấy ít bản ghi, hoặc 12 lượt lấy đủ 100 bản ghi. Trường giới tính trả về male hoặc female, không dịch. Câu trả lời không bao giờ được lưu đệm.

API miễn phí, không cần khoá, đã mở CORS cho mọi nguồn gọi

Tạo dữ liệu mẫu theo quốc gia là gì?

Lập trình viên nào cũng có lúc cần một trăm người dùng thử nghiệm: để đổ vào cơ sở dữ liệu thử nghiệm, để dựng giao diện danh sách xem có tràn dòng không, để chụp ảnh màn hình hướng dẫn mà không lộ dữ liệu khách hàng thật, hay để chạy kiểm thử tải. Gõ tay thì mất thời gian, mà gõ tay còn hay ra toàn tên một kiểu nên không phát hiện được lỗi bố cục.

Điểm mạnh của công cụ này là dữ liệu đúng theo từng nước chứ không phải tên tiếng Anh dịch máy. Chọn Việt Nam thì ra Nguyễn Văn với địa chỉ có phường, quận và mã bưu chính năm chữ số. Chọn Nhật thì ra tên kanji với địa chỉ kiểu chōme-banchi. Chọn Đức thì ra Straße với mã bưu chính năm chữ số. Có 75 quốc gia, mỗi nước một bộ tên riêng, cách viết địa chỉ riêng, định dạng số điện thoại riêng.

Ô hạt giống là thứ dân lập trình sẽ dùng nhiều nhất. Nhập một chuỗi bất kỳ vào đó thì lần nào chạy cũng ra đúng bộ dữ liệu ấy. Nhờ vậy bộ dữ liệu thử nghiệm ổn định giữa các lần chạy, và một bài kiểm thử hỏng có thể dựng lại đúng hiện trường.

Có một lý do thực tế nữa: dùng dữ liệu khách hàng thật trong môi trường phát triển là chuyện vẫn xảy ra và là rủi ro pháp lý thật, nhất là với nghị định về bảo vệ dữ liệu cá nhân. Dữ liệu mẫu sinh sẵn giải quyết gọn chuyện đó.

Ngoài giao diện, công cụ còn có API công khai để bạn gọi thẳng từ ứng dụng của mình. Không cần khoá, không cần đăng ký, và có mở CORS nên gọi được cả từ JavaScript trong trình duyệt. Quan trọng hơn: API dùng chung đúng đoạn mã sinh dữ liệu với trang web, nên cùng một hạt giống thì kết quả trả về giống hệt thứ bạn thấy trên màn hình. Đường dẫn tương ứng với các lựa chọn hiện tại hiện sẵn ngay dưới bảng kết quả, bấm là sao chép được.

Cách sử dụng

  • Chọn quốc gia trong danh sách, có ô tìm kiếm ở trên.
  • Đặt số bản ghi và khoảng tuổi.
  • Nhập hạt giống nếu muốn lần sau ra kết quả y hệt, để trống nếu muốn ngẫu nhiên.
  • Bấm tắt những trường không cần để kết quả gọn lại.
  • Sao chép hoặc tải về dạng JSON, CSV hay câu lệnh SQL INSERT.

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

Dữ liệu này có phải của người thật không?

Không. Tên, địa chỉ và số điện thoại được ghép ngẫu nhiên từ các kho từ vựng của từng nước, ngay trong trình duyệt của bạn. Trùng với người thật là ngẫu nhiên và ngoài ý muốn. Địa chỉ sinh ra đúng định dạng nhưng không phải địa chỉ có thật.

Vì sao không có số thẻ ngân hàng hay số căn cước?

Vì đó là những trường vừa có định dạng kiểm tra được vừa có giá trị thật cho kẻ gian lận, trong khi người làm kỹ thuật thanh toán vốn phải dùng bộ số thử do chính cổng thanh toán cấp chứ không dùng số sinh bừa. Bỏ hai thứ đó đi gần như không mất gì mà tránh được cách dùng sai.

Hạt giống dùng để làm gì?

Để kết quả lặp lại được. Cùng một hạt giống, cùng quốc gia, cùng số bản ghi thì luôn ra đúng bộ dữ liệu cũ. Rất tiện khi bạn cần một bộ dữ liệu mẫu cố định trong tài liệu hướng dẫn, hoặc cần dựng lại đúng dữ liệu đã làm một bài kiểm thử thất bại.

Gọi API thế nào?

Một lệnh GET là đủ, ví dụ /api/fake?locale=vi&count=10&seed=abc. Các tham số gồm locale, count từ 1 đến 100, seed, fields, minAge và maxAge. Danh sách 75 mã quốc gia lấy ở /api/fake/locales. Giới hạn 60 điểm mỗi phút cho mỗi địa chỉ IP; một lượt gọi tốn 1 điểm, cộng thêm 1 cho mỗi 25 bản ghi. Vượt quá thì nhận mã 429 kèm số giây cần chờ.

Xuất ra SQL thì dùng thế nào?

Kết quả là một loạt câu INSERT INTO people, mỗi bản ghi một dòng, tên cột đúng bằng các trường bạn đang bật. Sửa lại tên bảng cho khớp lược đồ của bạn rồi chạy thẳng. Dấu nháy đơn trong dữ liệu đã được nhân đôi đúng chuẩn SQL.

Dữ liệu có được gửi lên máy chủ không?

Không. Bộ sinh chạy hoàn toàn trong trình duyệt; máy chủ chỉ gửi cho bạn trang web và gói dữ liệu của quốc gia bạn chọn. Ngắt mạng sau khi trang đã tải xong thì công cụ vẫn chạy.