
Схема, данные: более разумный способ издеваться над
24 июня 2025 г.Практический инструмент для структурированного генерации данных JSON
Строительное программное обеспечение похоже на создание экосистемы
Каждый проект программного обеспечения похож на создание небольшой живой экосистемы. Вы не просто пишете код - вы определяете отношения, поведение, структуры, потоки, ограничения. Все влияет на все остальное: модель базы данных информирует API, который питает фронт, который влияет на решения UX, которые возвращаются к правилам проверки и состояниям ошибок.
В середине этой сети - одно тихое, но критическое требование:данныеПолем Каждая часть стека нуждается в этом - не только в конце концов, но с самого начала.
В тот момент, когда вы начинаете прототипировать, тестировать или проектировать потоки, вам нужно что -то, чтобы пройти через систему. Вам нужны фиктивные данные. Не только для одного поля или одного примера-но и полные наборы реалистичных, структурированных, соответствующих правилам объектов, которые выглядят и ведут себя как входные данные реального мира.
Он появляется на каждом этапе:
- Проектирование пользовательского интерфейса с реальным контентом
- Логика тестирования, которая зависит от поля ограничений
- Моделирование ответов API во время интеграции
- Посев локальной среды до существует логика бэкэнд
- Демонстрация потоков с фактическим разнообразием, а не заполнительными значениями
Но генерирование этих данных обычно раздражает. Большинство из нас либо подделали его вручную, дублируют несколько примеров, либо опираются на инструменты, которые не понимают структуру схемы или ограничения на уровне поля. Процесс работает - пока он не сломается. И тогда это часто ломается.
Ихнические данные просты - пока они не станут
Разработчики, инженеры QA и команды продуктов с тяжелыми данными в какой-то момент достигли одной и той же стены: необходимость в структурированных, реалистичных макетных данных-быстро. Не сложно издеваться над одним пользовательским объектом. Что расстраивает, так это издевательство над несколькими записями пользователей с действительными электронными письмами, локализованными именами, структурированными метаданными и такими ограничениями, как длина, диапазон, шаблон или вложенные полевые отношения.
Пересмешник
«Это инструмент, построенный из этой боли».
Не стартап. Не другая игровая площадка для случайных фальшивых данных. Просто твердое веб -приложение, предназначенное для создания тестовых данных, которые соответствуют вашей схеме, следует правилам и уважает структуру.
Он сочетает в себе зритель визуальной схемы, мощный механизм проверки и бэкэнд генерации, управляемый ИИ с использованием API Claude. Вы определяете форму. Вы направляете контент. MockingJar заполняет остальное - разумно, неоднократно и не требуя ручных исправлений.
Почему это существует
Этот проект вышел из повторения. Снова и снова вы начинаете с:
«Давайте построим для этого быстрое макет». И через несколько часов вы все еще пишете вручную JSON, исправляете поддельные значения или настраивая идентификаторы и массивы, которые не совсем соответствуют реальной структуре.
MockingJar существует, чтобы устранить это трение - особенно на ранних стадиях строительного программного обеспечения. В наши дни инженеры тратят больше времени прототипирования, проверки идей и создавая POC, чем когда -либо прежде. С этим темпом необходимость структурированных, схема-схемы, не является случаем края-это повседневная жизнь.
Этот инструмент возвращает вам в это время - хорошо выполняя одну вещь: генерируя структурированные данные из схемы, которую вы определяете.
Что на самом деле делает
MockingJar разделен на два основных компонента:
1. Веб -интерфейс
Полнофункциональное веб-приложение, созданное:
- Next.js 15(Маршрутизатор приложения)
- Материал UI V7
- React Crow Form + Zodдля проверки
- Next Auth + Google Oauthдля безопасного входа в систему
- CSRF + Session + защищенные маршрутыДля нескольких слоев безопасности
- Postgresqlчерез Prisma для настойчивости данных
- Zustand + React запросДля синхронизации состояния и данных
Этот интерфейс включает в себя:
- Строитель визуальной схемы с видом на дерево
- Интерфейс приглашения на естественный язык для создания данных, управляемого AI
- Библиотека личных схем с поддержкой сохранения/редактирования/удаления
- Аутентификация и управление сеансами
- Предварительный просмотр и инструменты экспорта JSON
2MockingJar-LibОсновной двигатель
Автономный пакет TypeScript с:
- Схема -строитель и манипуляционный двигатель
- Валидатор на полевом уровне JSON
- Антропический интеграционный слой Claude
- Поддержка вложенных объектов, массивов, ссылок и сложных ограничений
- Хирургическая регенерация только неверных полей
- Полный тестовый охват
Это тот же двигатель, который используется в веб -приложении, также используемом в сценариях бэкэнд или тестовых бегунах.
Построение схемы
MockingJar вращается вокруг пользовательских схем. Вы можете определить типы поля, логические ограничения и структуру до каждого уровня.
Поддерживаемые типы включают:
text
Вnumber
Вboolean
Вdate
Вemail
Вurl
object
(с вложенными полями)array
(с ограничениями элемента и вложенными структурами)schema
(Ссылка на другую сохраненную схему)
Каждое поле поддерживает логику, например:
- Требуется/необязательно
- Мин/максимальные значения или длины
- Сопоставление рисунков (например,
^ORD-\d{6}$
) - Выбор перечисления
- Размер ограничений для массивов
Состав схемы
Вы можете встроить существующие схемы в других. Этот тип «схемы» позволяет модулизировать общие модели - например, внедрениеAddress
схема в несколько форм (shippingAddress
ВbillingAddress
и т. д.) без переопределения его каждый раз.
Схемы Строителя
- Автобус-система
- Вид на дерево для глубокого гнездования
- Конвертер JSON-to-Schema (вставьте в образец JSON и преобразуйте в схему)
- Диалог выбора схемы (для внедрения существующих схем)
- Шаблоны для общих моделей
Генерирование данных
Как только схема будет готова, вы можете генерировать данные с помощью подсказки, подобной:
«Сгенерировать данные заказа для клиента, базирующегося в Лондоне, приобретение продукта, связанного с домашними утилитами (например, кухонные приборы, оборудование для чистящего чистота или инструменты для обслуживания дома)”
Подсказка не заменяет вашу схему - она просто направляет тон и реализм полученных значений. MockingJar использует Claude Sonnet 4 за кулисами, чтобы заполнить каждое поле, уважая:
- Тип
- Ограничения
- Гнездование
- Длина массива
- Правила корпорации и перечисления
И вы можете настроить, сколько записей вы хотите.
Вы получите предварительный просмотр результата и отформатированный выход. Если какие -либо поля не проводят проверку, они повторно отнесены к индивидуально - не выброшены с остальными. Этот процесс восстановления является ключом к поддержанию быстрого и согласованного генерации данных.
Аmockingjar-lib
Основной двигатель
Здесь живет все настоящие магии - и вы можете использовать его непосредственно в своих проектах node.js с любыми предпочтениями фронта.
Пример:
import { Generator } from 'mockingjar-lib';
const result = await Generator.generate(
'your-anthropic-api-key',
yourSchema,
'Generate Indonesian customer records with valid emails',
{
count: 10,
enableFallback: true,
timeout: 60000
}
);
if (result.success) {
console.log(result.data);
} else {
console.error(result.errors);
}
Вы также можете:
- Подтвердить JSON против схемы (
Validation.validate
) - Преобразовать JSON в схему (
Schema.convert.jsonToSchema
) - Добавить/обновить/удалить глубоко вложенные поля
- Получить структурированные метаданные о производительности поколения
Архитектура, ориентированная на разработчиков
- ПолныйМашинописькодовая база
- Eslint + строгий режим принудительно соблюдается
- Модульная кодовая база с
generator
Вschema
Вvalidation
, иanthropic
слои - Легко расширяется для добавления пользовательских генераторов или типов поля
🧪 все еще развивается - открыт для сотрудничества
MockingJar не является полированным продуктом. Это функциональный, реальный инструмент, который решает определенную проблему-и он делает это хорошо-но есть много места для роста.
Некоторые области по -прежнему нуждаются в уточнении:
- UI удобство использования и эргономика формирования
- Импорт/экспорт схемы схемы
- Более интуитивно понятная обработка глубоко вложенных структур
- Улучшенная оперативная интерпретация ИИ и обратная связь
- Сообщество схема/обмен шаблонами
- Лучшая видимость ошибок и отладочные потоки
Двигатель ядра генерации (mockingjar-lib
) твердо и протестирован, но опыт вокруг него - особенно в веб -приложении - все еще формируется.
Этот проект не пытается быть всем с первого дня. Он строится по частям с учетом реального использования, и если вы из тех разработчиков, который видит возможности в таком основе, ваша помощь приветствуется.
MockingJar полностью открыт. Взносы, тестирование, обратная связь, отчеты об ошибках и PRS высоко ценятся - будь то исправление ошибки, улучшение быстрого потока или просто указывает на то, где что -то чувствует.
Если этот инструмент решил даже небольшое раздражение для вас, и вы хотите помочь продвинуть его дальше, прыгните.
- Веб -приложение →https://mockingjar.vercel.app/mockingjar
- Репозиторий веб -приложений →https://github.com/firstpersoncode/mockingjar
- Основной пакет двигателей →MockingJar-Lib
- Репозиторий двигателя основного двигателя →https://github.com/firstpersoncode/mockingjar-lib
Давайте построим что -то полезное - вместе.
Окончательная мысль
MockingJar не был сделан, чтобы произвести впечатление. Это было сделаноПрекратите тратить время- Особенно на задаче, которую никто не хочет делать больше одного раза.
Если вы регулярно пишете схемы, издевательства за API или настройку тестов, это может быть инструмент, который стоит добавить в ваш стек. И если нет, украсть такие части, которые вам нравятся - вот для чего нужна открытый исходный код.
Оригинал