Генериране на измислен JSON набор от данни

генерира N JSON записа, съответстващи на проста схема, от Faker (locale fr_FR или en_US)

За какво се използват фиктивните данни?

Необходимостта възниква на всички етапи от цикъла на развитие. За демонстрация имаме нужда от потребители правдоподобен, не съкратен Lorem Ipsum. За интеграционни тестове искаме набор от данни възпроизводими, но разнообразни. За предпроизводствена среда, изолирана от GDPR, ние заместваме данните истински чрез изкуствени еквиваленти. За модел на потребителски интерфейс трябва да попълните таблици с записи достоверен. Генераторът на фиктивни данни покрива тези случаи, като произвежда JSON записи, съответстващи на проста схема.

Форматът на диаграмата

Схемата е JSON обект, където всеки ключ е името на създаденото поле, а стойността е тип Faker. от пример:

<пре>{ "име": "име", "имейл": "имейл", "възраст": "номер 18-65", "активен": "булев", "registered_on": "дата" }

След това инструментът генерира N записа в съответствие с тази схема, в избрания локал (френски или английски). Резултатът е JSON масив, който може да се използва директно като фиксиране, като тяло на заявка API, или като вход към сеялка на база данни.

Поддържани типове

  • име: пълно име („Мари Дюпон“).
  • firstName / lastName: собственото и фамилното име са разделени.
  • имейл: фалшив имейл адрес (използва safeEmail от Faker, който произвежда запазените домейни example.com не са достъпни).
  • телефон: локално форматиран телефонен номер.
  • адрес: пълен пощенски адрес.
  • число: произволно цяло число между 0 и 1000 по подразбиране или число a-b за персонализирана гама.
  • boolean: true или false произволно.
  • дата: дата във формат ISO 8601 (ГГГГ-ММ-ДД).
  • uuid: UUID v4.
  • текст: кратък абзац lorem-ipsumesque (~120 знака).
  • низ: три произволни думи.
  • url: фиктивен URL (https://example.org/...).

Всички неразпознати типове се запазват както са в резултата. Това е избор: ако поставите "role": "admin" в схемата, всеки запис ще има "role": "admin". това ви позволява да смесвате постоянни стойности и динамични полета, без да променяте инструментите.

Избор на местоположение

Faker има десетки помещения. Инструментът излага двата най-полезни в контекста френскоговорящи:

  • fr_FR: френски имена, френски адреси, телефонни номера във френски формат, lorem-ipsum изречения на приблизителен френски.
  • en_US: американски имена и адреси, телефонни номера в американски формат.

За демонстрационна последователност от френска страна изберете fr_FR. За проба интернационализация, смесете двете изпълнения или увеличете броя на записите, които трябва да имате от различен произход.

Случаи на употреба

  • Тестови поправки: генерирайте 50 потребители, поставете ги в YAML файл от AliceBundle или сеялка. Възпроизвежда се, когато зададете Faker seed, варира в противен случай.
  • Мокети на потребителския интерфейс: попълнете React/Vue таблица с правдоподобни данни. много по-смислен от празен масив или foo / bar / baz.
  • Тестово натоварване: генерирайте голям JSON полезен товар за тест за пропускателна способност (k6, JMeter, скакалец).
  • Търговски демонстрации: попълнете демонстрационен екземпляр с входове, които наподобяват реални случаи, но не рискуват изтичане на чувствителна информация.
  • Анонимизиране: заменете производствения експорт с фиктивен еквивалент преди споделете го с подизпълнител или го използвайте в предпроизводството.

Доброволни ограничения

За да остане лесен за използване, инструментът не поддържа вложени схеми (поле, което само по себе си би било обект или масив от обекти). За такива нужди е по-добре да напишете специален скрипт на Faker, или наберете няколко последователни повиквания. Доброволното ограничение избягва и абсурдни комбинации ("items": "name" с произволна кардиналност), което би направило инструмента по-малко предсказуем.

Броят на записите е ограничен до 500. Освен това очакваме среда от тествайте дали генерира своите приспособления чрез специален код (Faker в CLI, Foundry, factory_bot и т.н.). Уеб инструментът полезен е за до няколкостотин записа; отвъд това, плато за памет и време за реакция опит.

Възпроизводимост и безопасност

Стойностите се произвеждат с недетерминиран PRNG: всяко изпълнение произвежда данни различни. За тестове, които трябва да бъдат възпроизводими (CI), заснемете изхода веднъж и ангажирай го. За наистина чувствителни данни (анонимизиране на производството) имайте предвид, че публичното генериране от страна на сървъра не е правилният канал: предпочитайте локален скрипт, който никога не излиза вашата позиция.

Често задавани въпроси

Валидни ли са генерираните имейли?

Форматът е валиден (RFC 5322), но домейнът е example.com или еквивалентен запазен от IANA. Нито един от тези имейли не може да получава съобщения; това е доброволно, за да се избегне спам случайни на реални адреси.

Мога ли да получа един и същ набор от данни няколко пъти?

Не чрез уеб интерфейса: инструментът не задава семе. За стриктна възпроизводимост, скриптирайте локално генериране с Faker и фиксирано семе ($faker->seed(1234);).

Как да генерирам вложен обект?

Инструментът поддържа само плоска диаграма. За вградени, последваща обработка на изхода със скрипт или директно напишете съответния код на Faker.

Защо всичките ми числа са между 0 и 1000?

Това е диапазонът по подразбиране. Посочете диапазон: "age": "number 18-65", "цена": "номер 1-9999" и т.н.

Какви са връзките с други инструменти на сайта?

За количествени UUID вижте генератора на UUID. За пароли, генератор на пароли. За текст, генератор на текст. Инструментът е макетният генератор на данни трансверсал, който съчетава няколко от тези поколения.

Пример за заявка

curl -X POST https://cdrn.fr/api/v1/tools/mock-data-generator/execute \
  -H "Content-Type: application/json" \
  -d '{"schema":"{\"name\": \"name\", \"email\": \"email\", \"age\": \"number 18-65\"}","count":5,"locale":"fr_FR"}'

Входна схема

Поле Тип Задължително По подразбиране
schema text {"name": "name", "email": "email", "age": "number 18-65"}
count integer 5
locale choice (fr_FR, en_US) fr_FR

Крайни точки

  • GET https://cdrn.fr/api/v1/tools - изброява всички достъпни инструменти
  • GET https://cdrn.fr/api/v1/tools/mock-data-generator - извлича схемата на този инструмент
  • POST https://cdrn.fr/api/v1/tools/mock-data-generator/execute - изпълнява този инструмент с JSON payload