Sinh dữ liệu mẫu từ JSON Schema online
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.
Kết quả
Bấm “Chạy” để xem kết quả.
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.
Dùng trong code của bạn
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"}'const res = await fetch('https://apibox.io.vn/v1/schema-mock', {
method: 'POST',
headers: {
Authorization: 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json',
},
body: JSON.stringify({
"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"
}),
});
const data = await res.json();
console.log(data);import requests
res = requests.post(
"https://apibox.io.vn/v1/schema-mock",
headers={"Authorization": "Bearer YOUR_API_KEY"},
json={"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"},
timeout=30,
)
print(res.json())<?php
$ch = curl_init('https://apibox.io.vn/v1/schema-mock');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_HTTPHEADER => ['Authorization: Bearer YOUR_API_KEY', 'Content-Type: application/json'],
CURLOPT_POSTFIELDS => '{"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"}',
]);
$response = curl_exec($ch);
print_r(json_decode($response, true));Tài liệu API → Nhận API key miễn phí
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ề.