Generer et falsk JSON-datasæt
- Dashboard
- Dokumentation
- API
Hvad bruges dummy-data til?
Behovet opstår på alle stadier af udviklingscyklussen. Til en demo har vi brug for brugere plausibel, ikke afkortet Lorem Ipsum. Til integrationstest ønsker vi et datasæt reproducerbar, men varieret. For et præproduktionsmiljø, der er isoleret fra GDPR, erstatter vi dataene reelle ved kunstige ækvivalenter. For en UI-model skal du udfylde tabeller med poster troværdig. dummy-datageneratoren dækker disse tilfælde ved at producere JSON-poster, der er i overensstemmelse med et simpelt skema.
Diagrammets format
Skemaet er et JSON-objekt, hvor hver nøgle er navnet på det producerede felt, og værdien er en Faker-type. Af eksempel:
{
"navn": "navn",
"email": "e-mail",
"age": "nummer 18-65",
"active": "boolesk",
"registred_on": "dato"
}
Værktøjet genererer derefter N optagelser, der respekterer dette skema, i den valgte lokalitet (fransk eller engelsk). Resultatet er et JSON-array, der kan bruges direkte som et opspændingselement, som brødteksten i en anmodning API, eller som input til en database seeder.
Understøttede typer
- navn: fulde navn ("Marie Dupont").
- fornavn / efternavn: for- og efternavn adskilt.
- e-mail: falsk e-mailadresse (bruger
safeEmailfra Faker, som producerer reserverede domænerexample.comkan ikke nås). - telefon: lokalt formateret telefonnummer.
- adresse: fuld postadresse.
- tal: tilfældigt heltal mellem 0 og 1000 som standard, eller
tal a-bfor et personligt udvalg. - boolesk:
sandellerfalsktilfældigt. - dato: dato i ISO 8601-format (
ÅÅÅÅ-MM-DD). - uuid: UUID v4.
- tekst: kort lorem-ipsumesque afsnit (~120 tegn).
- streng: tre tilfældige ord.
- url: Dummy-URL (
https://example.org/...).
Eventuelle ikke-genkendte typer opbevares som i resultatet. Det er et valg: hvis du sætter
"role": "admin" i skemaet, vil hver post have "role": "admin". Dette
giver dig mulighed for at blande konstante værdier og dynamiske felter uden at skifte værktøjer.
Valg af placering
Faker har snesevis af lokaler. Værktøjet afslører de to mest nyttige i sammenhæng Fransktalende:
- fr_FR: Franske navne, franske adresser, telefonnumre i fransk format, lorem-ipsum sætninger på tilnærmet fransk.
- da_US: Amerikanske navne og adresser, telefonnumre i amerikansk format.
For at få ensartet demonstration på den franske side, vælg fr_FR. Til en test
internationalisering, blande de to henrettelser eller øge antallet af poster, der skal have
fra forskellige oprindelser.
Brug cases
- Testrettelser: generer 50 brugere, indsæt dem i en YAML-fil fra AliceBundle eller en såmaskine. Reproducerbar, når du sætter en Faker-seed, varieret ellers.
- UI-mockups: udfyld en React/Vue-tabel med plausible data. En masse
mere meningsfuldt end et tomt array eller
foo / bar / baz. - Testbelastning: generer en stor JSON-nyttelast til en gennemløbstest (k6, JMeter, Græshoppe).
- Kommercielle demoer: udfyld en demoforekomst med input, der ligner virkelige tilfælde, men risiker ikke at lække følsomme oplysninger.
- Anonymisering: Erstat en produktionseksport med en dummy-ækvivalent før del det med en underleverandør eller brug det i præproduktion.
Frivillige grænser
For at forblive enkelt at bruge, understøtter værktøjet ikke indlejrede skemaer (et felt, som i sig selv ville være
et objekt eller en række objekter). Til sådanne behov er det bedre at skrive et dedikeret Faker-manuskript eller
ringe op til flere på hinanden følgende opkald. Den frivillige grænse undgår også absurde kombinationer
("items": "navn" med tilfældig kardinalitet), hvilket ville gøre værktøjet mindre forudsigeligt.
Antallet af poster er begrænset til 500. Ud over det forventer vi et miljø af test, at den genererer sine armaturer via dedikeret kode (Faker i CLI, Foundry, factory_bot osv.). Webværktøjet er nyttig for op til et par hundrede poster; ud over det, hukommelse og responstid plateau erfaring.
Reproducerbarhed og sikkerhed
Værdier produceres med en ikke-deterministisk PRNG: hver udførelse producerer data anderledes. For test, der skal være reproducerbare (CI), skal du fange output én gang og begå det. For virkelig følsomme data (produktionsanonymisering), skal du huske, at public server-side generation er ikke den rigtige kanal: foretrækker et lokalt script, der aldrig afsluttes din position.
Ofte stillede spørgsmål
Er de genererede e-mails gyldige?
Formatet er gyldigt (RFC 5322), men domænet er example.com eller tilsvarende reserveret
af IANA. Ingen af disse e-mails kan modtage beskeder; dette er frivilligt for at undgå spam
tilfældigt på rigtige adresser.
Kan jeg få det samme datasæt flere gange?
Ikke via webgrænsefladen: Værktøjet sætter ikke et frø. For streng reproducerbarhed, script til
lokal generation med Faker og et fast frø ($faker->seed(1234);).
Hvordan genererer man et indlejret objekt?
Værktøjet understøtter kun et fladt diagram. For indlejret, efterbehandle outputtet med et script eller skriv direkte den tilsvarende Faker-kode.
Hvorfor er alle mine tal mellem 0 og 1000?
Dette er standardområdet. Angiv et interval: "age": "nummer 18-65",
"price": "nummer 1-9999" osv.
Hvad er links til andre værktøjer på webstedet?
For antal UUID'er, se UUID-generatoren. For adgangskoder, adgangskodegeneratoren. Til tekst, tekstgeneratoren. Den falske datagenerator er værktøjet tværgående som kombinerer flere af disse generationer.
Anmodningseksempel
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"}'
Inputskema
| Felt | Type | Påkrævet | Standard |
|---|---|---|---|
schema |
text | ✓ | {"name": "name", "email": "email", "age": "number 18-65"} |
count |
integer | ✓ | 5 |
locale |
choice (fr_FR, en_US) | ✓ | fr_FR |
Endpoints
GET https://cdrn.fr/api/v1/tools- lister alle tilgængelige værktøjerGET https://cdrn.fr/api/v1/tools/mock-data-generator- henter skemaet for dette værktøjPOST https://cdrn.fr/api/v1/tools/mock-data-generator/execute- udfører dette værktøj med et JSON-payload