Genere datos simulados escritos desde cualquier esquema JSON con una llamada API
Envíe un esquema JSON a la API del generador de datos simulados de Botoi y obtenga datos falsos realistas para perfiles de usuario, pedidos de comercio electrónico, publicaciones de blogs y más. Bases de datos iniciales y UI de prueba en segundos.
Todos los desarrolladores frontend, ingenieros de control de calidad y creadores de backend se topan con la misma fricción: necesitan datos realistas probar una interfaz de usuario, generar una base de datos o verificar una integración de API, pero escribir scripts iniciales a mano es tedioso y los resultados parecen falsos. Entradas codificadas de "John Doe" en todas las tablas. Marcas de tiempo idénticas. Precios que son siempre 9,99.
La API del generador de datos simulados de Botoi adopta un enfoque diferente. Usted define un esquema JSON que describe la forma del datos que desea y la API devuelve una serie de registros que coinciden con esa forma con valores aleatorios y realistas. uno Llamada HTTP. No hay bibliotecas que instalar, ni configuraciones falsas, ni archivos semilla que mantener.
Cómo funciona: define un esquema, recupera datos
El punto final acepta un objeto de esquema JSON estándar y un count parámetro. Devuelve una matriz de
registros generados que coinciden con su esquema, con tipos, formatos y restricciones respetados.
Pedido
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
}'
Respuesta
{
"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
}
}
El esquema sigue las convenciones del esquema JSON. Colocar type para controlar el tipo de datos,
format para pistas como "email" o "date-time", y
minimum/maximum para rangos numéricos. El required matriz
le dice al generador qué campos deben aparecer en cada registro.
Ejemplo: pedidos de comercio electrónico
¿Está probando un panel de gestión de pedidos? Necesita pedidos con artículos en línea, precios en centavos y valores de estado. Aquí hay un esquema para eso.
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
}'
Respuesta (primer registro mostrado):
{
"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
}
}
Cada pedido obtiene un ID, un correo electrónico, un total y un conjunto de líneas de pedido diferentes. El minimum y
maximum restricciones en quantity y price_cents mantener los valores
dentro de límites realistas.
Ejemplo: publicaciones de blog
¿Crear un CMS o una página de listado de blogs? Genere publicaciones con títulos, slugs, autores, marcas de tiempo y etiquetas.
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
}'
Diez publicaciones de blog con diferentes autores, títulos, conjuntos de etiquetas y fechas de publicación. Suficiente para probar la paginación, Lógica de filtrado y clasificación sin escribir un solo dispositivo a mano.
Sembrar una base de datos en un script
Combine el generador de datos simulados con un cliente de base de datos y tendrá un script inicial completo. Aquí hay una versión de bash que inserta 50 usuarios en una base de datos 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"
El script genera 50 registros de usuario únicos, analiza cada uno con jqy los inserta uno a la vez.
Para conjuntos de datos más grandes, canalice la salida en forma masiva COPY comando o una inserción por lotes.
Versión de Node.js
Si su pila es JavaScript o TypeScript, llame a la API con fetch y pasar los resultados
a su 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);
La generateMockData La función es reutilizable. Llámelo con cualquier esquema y cuente, luego inserte el
resultados en Drizzle, Prisma, Knex o cualquier ORM que utilice.
¿Por qué utilizar una API en lugar de una biblioteca?
- Sin dependencias. No es necesario instalar faker.js, factory_bot ni ningún idioma específico. biblioteca. Una única llamada HTTP funciona desde cualquier lenguaje, script de shell o canalización de CI.
- Basado en esquemas. El mismo esquema JSON que utiliza para la validación puede controlar los datos de su prueba. Cambiar el esquema y los datos generados cambian con él. No hay definiciones de fábrica para mantener sincronizadas.
- Formato consistente. Cada miembro del equipo obtiene datos de la misma fuente. No "funciona en mi máquina" diferencias entre accesorios escritos a mano.
- Compartible. Copie el comando curl en un hilo de Slack, un archivo README o una configuración de CI. cualquiera puedo ejecutarlo sin instalar nada.
Consejos prácticos
-
Guarde las respuestas como archivos fijos. Ejecute la API una vez, guarde la salida JSON en
fixtures/users.jsony cargue ese archivo en sus pruebas. Esto mantiene las pruebas deterministas y evita llamadas de red durante las ejecuciones de prueba. -
Utilice sugerencias de formato. Configuración
"format": "email"produce cadenas en forma de correo electrónico. Otros formatos útiles incluyen"date-time","uri", y"uuid". -
Anide objetos para datos complejos. El esquema admite objetos dentro de objetos y matrices de
objetos. Modele las relaciones reales de su base de datos anidando un
addressobjeto dentro de uncustomerobjeto. -
Combínelo con otros puntos finales de Botoi. Genere usuarios simulados y luego pase cada correo electrónico a
/v1/disposable-email/checkpara probar su flujo de validación de correo electrónico de principio a fin.
FAQ
- ¿Necesito una clave API para utilizar la API del generador de datos simulado?
- No. El acceso anónimo está disponible a 5 solicitudes por minuto con limitación de velocidad basada en IP. Para obtener un mayor rendimiento, regístrese para obtener una clave API gratuita en botoi.com/api.
- ¿Qué características del esquema JSON admite el punto final?
- El punto final admite tipos de esquema JSON estándar (cadena, entero, número, booleano, objeto, matriz), sugerencias de formato como "correo electrónico" y "uri", restricciones mínimas y máximas para números y declaraciones de campos obligatorios. Los objetos anidados y las matrices de objetos funcionan como se esperaba.
- ¿Cuantos registros puedo generar en una sola solicitud?
- Establezca el campo "recuento" en el cuerpo de la solicitud según la cantidad de registros que desee. El punto final admite la generación de hasta 100 registros por llamada.
- ¿Los datos generados son deterministas?
- No. Cada solicitud produce diferentes valores aleatorios. Si necesita datos reproducibles, guarde la respuesta en un archivo de dispositivo y cárguelo en sus pruebas.
- ¿Puedo usar esto para inicializar una base de datos de producción?
- El punto final genera datos falsos con fines de desarrollo y prueba. Los nombres, correos electrónicos y otros valores son ficticios. No utilice los datos generados como registros de producción.
Empieza a construir con botoi
150+ endpoints de API para consultas, procesamiento de texto, generacion de imagenes y utilidades para desarrolladores. Plan gratuito, sin tarjeta de credito.