Dữ liệu mẫu từ JSON Schema API

Sinh JSON mẫu như thật từ JSON Schema (kiểu, format, enum, pattern, khoảng giá trị, $ref, oneOf / allOf), có kiểm tra lại theo schema.

POSThttps://apibox.io.vn/v1/schema-mock

API mock theo schema biến một JSON Schema thành dữ liệu mẫu: object với các thuộc tính bắt buộc và tuỳ chọn, mảng trong khoảng minItems / maxItems, số trong minimum / maximum và multipleOf, chuỗi trong giới hạn độ dài, enum, const, examples và các format thông dụng (email, date, date-time, uuid, uri, hostname, ipv4, ipv6).

Các pattern đơn giản (chữ số, lớp ký tự, lặp như ^0[35789]\d{8}$) cho ra chuỗi khớp, $ref nội bộ (#/$defs/..., #/definitions/...) được giải, allOf được gộp và oneOf / anyOf chọn một nhánh. Tối đa 100 phần tử mỗi lần; cùng seed cho cùng dữ liệu nên fixture luôn ổn định.

Mỗi phần tử sinh ra được kiểm tra bằng cùng bộ kiểm tra của API JSON validator (draft 2020-12): valid cho biết tất cả có hợp lệ không. Các từ khoá bộ sinh chưa hỗ trợ (not, if / then, pattern phức tạp) có thể tạo phần tử không hợp lệ, được đếm trong invalid_items.

Tham số

TênVị tríKiểuBắt buộcMặc định
schemabodyobjectcóJSON Schema.
countbodynumberkhông1Số phần tử (1–100).
seedbodystringkhôngSeed để sinh lại đúng dữ liệu.

Ví dụ

curl -X POST "https://apibox.io.vn/v1/schema-mock" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"schema":{"type":"object","required":["id","email"],"properties":{"id":{"type":"string","format":"uuid"},"email":{"type":"string","format":"email"},"age":{"type":"integer","minimum":18,"maximum":99},"phone":{"type":"string","pattern":"^0[35789]\\d{8}$"}}},"count":1,"seed":"s"}'

Kết quả trả về

{
  "seed": "s",
  "count": 1,
  "valid": true,
  "data": [
    {
      "id": "dacf6276-1f2c-4cc4-830a-b315d3dc1f17",
      "email": "lorem.river4@example.com",
      "age": 89,
      "phone": "0913924197"
    }
  ]
}

Ứng dụng

  • Mock phản hồi API cho front-end khi back-end chưa xong
  • Fixture, dữ liệu mẫu cho test tự động
  • Kiểm tra schema có chấp nhận đúng dữ liệu bạn nghĩ không
  • Ví dụ payload cho tài liệu API

Hỏi đáp

Hỗ trợ draft nào?

Các từ khoá thông dụng của draft 7, 2019-09 và 2020-12. Kết quả được kiểm tra theo draft 2020-12.

Có hỗ trợ $ref từ xa không?

Không, chỉ tham chiếu trong cùng schema (#/...). Hãy gộp schema trước.

Có lấy lại đúng dữ liệu cũ được không?

Được, truyền cùng seed và count; seed đã dùng luôn được trả về.

API liên quan

Bắt đầu với 1.000 request miễn phí mỗi tháng. Nhận API key miễn phí →