قم بإنشاء بيانات وهمية مكتوبة من أي مخطط JSON باستخدام استدعاء API واحد
أرسل مخطط JSON إلى واجهة برمجة تطبيقات مولد البيانات الوهمية في Botoi واحصل على بيانات مزيفة واقعية لملفات تعريف المستخدمين وطلبات التجارة الإلكترونية ومنشورات المدونات والمزيد. قواعد البيانات الأولية واختبار واجهات المستخدم في ثوانٍ.
يواجه كل مطور للواجهة الأمامية، ومهندس ضمان الجودة، ومنشئ الواجهة الخلفية نفس الاحتكاك: أنت بحاجة إلى بيانات واقعية لاختبار واجهة مستخدم، أو إنشاء قاعدة بيانات، أو التحقق من تكامل واجهة برمجة التطبيقات، ولكن كتابة البرامج النصية الأولية يدويًا أمر شاق ومتعب تبدو النتائج مزيفة. إدخالات "John Doe" المشفرة عبر كل جدول. طوابع زمنية متطابقة. الأسعار التي دائما 9.99.
تتخذ واجهة برمجة تطبيقات مولد البيانات الوهمية من Botoi نهجًا مختلفًا. يمكنك تحديد مخطط JSON الذي يصف شكل الملف البيانات التي تريدها، وتقوم واجهة برمجة التطبيقات (API) بإرجاع مجموعة من السجلات التي تطابق هذا الشكل بقيم عشوائية وواقعية. واحد مكالمة HTTP. لا توجد مكتبات لتثبيتها، ولا يوجد إعداد مزيف، ولا توجد ملفات أولية للمحافظة عليها.
كيف يعمل: تحديد المخطط، واستعادة البيانات
تقبل نقطة النهاية كائن مخطط JSON القياسي و count المعلمة. تقوم بإرجاع مجموعة من
إنشاء سجلات مطابقة لمخططك، مع احترام الأنواع والتنسيقات والقيود.
طلب
curl -X POST https://api.botoi.com/v1/mock/generate \\
-H "Content-Type: application/json" \\
-d '{
"schema": {
"type": "object",
"properties": {
"id": { "type": "integer" },
"name": { "type": "string" },
"email": { "type": "string", "format": "email" },
"age": { "type": "integer", "minimum": 18, "maximum": 80 }
},
"required": ["id", "name", "email"]
},
"count": 5
}'
إجابة
{
"success": true,
"data": {
"data": [
{ "id": 42, "name": "Sarah Chen", "email": "sarah@example.com", "age": 34 },
{ "id": 87, "name": "Marcus Johnson", "email": "marcus.j@example.com", "age": 28 },
{ "id": 15, "name": "Priya Patel", "email": "priya.patel@example.com", "age": 51 },
{ "id": 63, "name": "David Kim", "email": "dkim@example.com", "age": 45 },
{ "id": 91, "name": "Elena Rodriguez", "email": "elena.r@example.com", "age": 22 }
],
"count": 5
}
}
يتبع المخطط اصطلاحات مخطط JSON. تعيين type للتحكم في نوع البيانات،
format للحصول على تلميحات مثل "email" أو "date-time"، و
minimum/maximum للنطاقات الرقمية. ال required صفيف
يخبر المولد بالحقول التي يجب أن تظهر في كل سجل.
مثال: طلبات التجارة الإلكترونية
اختبار لوحة تحكم إدارة الطلب؟ أنت بحاجة إلى أوامر تحتوي على عناصر وأسعار بالسنت وقيم الحالة. وهنا مخطط لذلك.
curl -X POST https://api.botoi.com/v1/mock/generate \\
-H "Content-Type: application/json" \\
-d '{
"schema": {
"type": "object",
"properties": {
"order_id": { "type": "string" },
"customer_email": { "type": "string", "format": "email" },
"total_cents": { "type": "integer", "minimum": 500, "maximum": 50000 },
"currency": { "type": "string" },
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"sku": { "type": "string" },
"quantity": { "type": "integer", "minimum": 1, "maximum": 10 },
"price_cents": { "type": "integer", "minimum": 100, "maximum": 9999 }
}
}
},
"status": { "type": "string" }
},
"required": ["order_id", "customer_email", "total_cents", "currency"]
},
"count": 3
}'
الرد (السجل الأول معروض):
{
"success": true,
"data": {
"data": [
{
"order_id": "ord_7f3a2b",
"customer_email": "lena.watts@example.com",
"total_cents": 12450,
"currency": "usd",
"items": [
{ "sku": "TSHIRT-BLK-M", "quantity": 2, "price_cents": 2999 },
{ "sku": "HOODIE-GRY-L", "quantity": 1, "price_cents": 6452 }
],
"status": "fulfilled"
}
],
"count": 3
}
}
يحصل كل طلب على معرف مختلف وبريد إلكتروني وإجمالي ومجموعة من العناصر. ال minimum و
maximum القيود على quantity و price_cents الحفاظ على القيم
ضمن حدود واقعية.
على سبيل المثال: منشورات المدونة
إنشاء نظام إدارة المحتوى (CMS) أو صفحة قائمة المدونة؟ قم بإنشاء منشورات تحتوي على عناوين، وارتباطات ثابتة، ومؤلفين، وطوابع زمنية، وعلامات.
curl -X POST https://api.botoi.com/v1/mock/generate \\
-H "Content-Type: application/json" \\
-d '{
"schema": {
"type": "object",
"properties": {
"id": { "type": "integer" },
"title": { "type": "string" },
"slug": { "type": "string" },
"author": { "type": "string" },
"published_at": { "type": "string", "format": "date-time" },
"tags": {
"type": "array",
"items": { "type": "string" }
},
"excerpt": { "type": "string" }
},
"required": ["id", "title", "slug", "author"]
},
"count": 10
}'
عشر منشورات مدونة بمؤلفين وعناوين ومصفوفات علامات وتواريخ نشر مختلفة. يكفي لاختبار ترقيم الصفحات ، تصفية وفرز المنطق دون كتابة تركيبات واحدة باليد.
زرع قاعدة بيانات في برنامج نصي واحد
قم بدمج منشئ البيانات الوهمية مع عميل قاعدة البيانات وسيكون لديك نص أولي كامل. فيما يلي إصدار bash يقوم بإدراج 50 مستخدمًا في قاعدة بيانات PostgreSQL:
#!/bin/bash
set -euo pipefail
API="https://api.botoi.com/v1/mock/generate"
DB_URL="postgresql://localhost:5432/myapp_dev"
echo "Generating 50 user records..."
USERS=\$(curl -s -X POST "\$API" \\
-H "Content-Type: application/json" \\
-d '{
"schema": {
"type": "object",
"properties": {
"name": { "type": "string" },
"email": { "type": "string", "format": "email" },
"age": { "type": "integer", "minimum": 18, "maximum": 80 },
"signup_date": { "type": "string", "format": "date-time" }
},
"required": ["name", "email"]
},
"count": 50
}')
echo "\$USERS" | jq -c '.data.data[]' | while read -r row; do
NAME=\$(echo "\$row" | jq -r '.name')
EMAIL=\$(echo "\$row" | jq -r '.email')
AGE=\$(echo "\$row" | jq -r '.age')
SIGNUP=\$(echo "\$row" | jq -r '.signup_date')
psql "\$DB_URL" -c "INSERT INTO users (name, email, age, signup_date) VALUES ('\$NAME', '\$EMAIL', \$AGE, '\$SIGNUP');"
done
echo "Seeded 50 users into \$DB_URL"
يقوم البرنامج النصي بإنشاء 50 سجل مستخدم فريدًا، ويقوم بتحليل كل منها jq، ويقوم بإدراجها واحدة تلو الأخرى.
بالنسبة لمجموعات البيانات الأكبر حجمًا، قم بتوجيه الإخراج إلى مجموعة كبيرة COPY الأمر أو إدراج دفعة.
نسخة Node.js
إذا كانت مجموعتك عبارة عن JavaScript أو TypeScript، فاتصل بواجهة برمجة التطبيقات (API) باستخدام fetch وتمرير النتائج
إلى ORM الخاص بك:
const API = "https://api.botoi.com/v1/mock/generate";
async function generateMockData(schema, count) {
const response = await fetch(API, {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ schema, count }),
});
const result = await response.json();
return result.data.data;
}
const userSchema = {
type: "object",
properties: {
name: { type: "string" },
email: { type: "string", format: "email" },
role: { type: "string" },
created_at: { type: "string", format: "date-time" },
},
required: ["name", "email", "role"],
};
const users = await generateMockData(userSchema, 25);
console.log(users);
// Pass directly to your ORM
// await db.insert(usersTable).values(users);
ال generateMockData الوظيفة قابلة لإعادة الاستخدام. اتصل به بأي مخطط وقم بالعد، ثم أدخل الملف
يؤدي إلى Drizzle أو Prisma أو Knex أو أي ORM تستخدمه.
لماذا تستخدم واجهة برمجة التطبيقات (API) بدلاً من المكتبة؟
- لا التبعيات. لا تحتاج إلى تثبيت faker.js، أو Factory_bot، أو أي لغة خاصة مكتبة. تعمل مكالمة HTTP واحدة من أي لغة أو برنامج نصي Shell أو خط أنابيب CI.
- يحركها المخطط. يمكن لنفس مخطط JSON الذي تستخدمه للتحقق من الصحة أن يقود بيانات الاختبار الخاصة بك. التغيير المخطط، وتتغير البيانات الناتجة معه. لا توجد تعريفات المصنع للحفاظ على المزامنة.
- تنسيق متسق. يحصل كل عضو في الفريق على البيانات من نفس المصدر. لا يوجد "يعمل على جهازي" الاختلافات بين التركيبات المكتوبة بخط اليد.
- قابلة للمشاركة. انسخ أمر الضفيرة إلى مؤشر ترابط Slack أو README أو تكوين CI. أي شخص يمكن تشغيله دون تثبيت أي شيء.
نصائح عملية
-
حفظ الردود كملفات لاعبا اساسيا. قم بتشغيل واجهة برمجة التطبيقات (API) مرة واحدة، واحفظ مخرجات JSON في
fixtures/users.json، وقم بتحميل هذا الملف في اختباراتك. هذا يبقي الاختبارات حتمية و يتجنب مكالمات الشبكة أثناء التشغيل التجريبي. -
استخدم تلميحات التنسيق. جلسة
"format": "email"تنتج سلاسل على شكل البريد الإلكتروني. وتشمل التنسيقات المفيدة الأخرى"date-time","uri"، و"uuid". -
كائنات Nest للبيانات المعقدة. يدعم المخطط الكائنات الموجودة داخل الكائنات والمصفوفات
أشياء. قم بتصميم علاقات قاعدة البيانات الحقيقية الخاصة بك عن طريق تداخل ملف
addressكائن داخل أcustomerهدف. -
ادمجها مع نقاط نهاية Botoi الأخرى. قم بإنشاء مستخدمين وهميين، ثم قم بتمرير كل بريد إلكتروني إلى
/v1/disposable-email/checkلاختبار تدفق التحقق من صحة البريد الإلكتروني الخاص بك من البداية إلى النهاية.
FAQ
- هل أحتاج إلى مفتاح واجهة برمجة التطبيقات (API) لاستخدام واجهة برمجة تطبيقات مولد البيانات الوهمية؟
- لا. الوصول المجهول متاح بمعدل 5 طلبات في الدقيقة مع تحديد معدل يعتمد على IP. للحصول على إنتاجية أعلى، قم بالتسجيل للحصول على مفتاح API مجاني على botoi.com/api.
- ما هي ميزات مخطط JSON التي تدعمها نقطة النهاية؟
- تدعم نقطة النهاية أنواع مخططات JSON القياسية (سلسلة، عدد صحيح، رقم، منطقي، كائن، مصفوفة)، وتلميحات التنسيق مثل "البريد الإلكتروني" و"uri"، وقيود الحد الأدنى/الحد الأقصى للأرقام، وإعلانات الحقول المطلوبة. تعمل الكائنات المتداخلة ومصفوفات الكائنات كما هو متوقع.
- كم عدد السجلات التي يمكنني إنشاؤها في طلب واحد؟
- قم بتعيين حقل "العدد" في نص الطلب على عدد السجلات التي تريدها. تدعم نقطة النهاية إنشاء ما يصل إلى 100 سجل لكل مكالمة.
- هل البيانات الناتجة حتمية؟
- لا، فكل طلب ينتج عنه قيم عشوائية مختلفة. إذا كنت بحاجة إلى بيانات قابلة للتكرار، فاحفظ الاستجابة في ملف التثبيت وقم بتحميله في اختباراتك.
- هل يمكنني استخدام هذا لبذرة قاعدة بيانات الإنتاج؟
- تقوم نقطة النهاية بإنشاء بيانات مزيفة لأغراض التطوير والاختبار. الأسماء ورسائل البريد الإلكتروني والقيم الأخرى خيالية. لا تستخدم البيانات التي تم إنشاؤها كسجلات الإنتاج.
ابدأ البناء مع botoi
أكثر من 150 نقطة نهاية API للبحث ومعالجة النصوص وتوليد الصور وأدوات المطورين. باقة مجانية، بدون بطاقة ائتمان.