Generirati izmišljen JSON nabor podatkov

generira N JSON zapisov, ki ustrezajo preprosti shemi, iz Fakerja (locale fr_FR ali en_US)

Za kaj se uporabljajo navidezni podatki?

Potreba se pojavi na vseh stopnjah razvojnega cikla. Za demo potrebujemo uporabnike verjeten, ne okrnjen Lorem Ipsum. Za integracijske teste želimo nabor podatkov ponovljive, a raznolike. Za predprodukcijsko okolje, izolirano od GDPR, zamenjamo podatke pravi z umetnimi ekvivalenti. Za model uporabniškega vmesnika morate tabele napolniti z vnosi verodostojen. Navidezni generator podatkov pokriva te primere s proizvodnjo Zapisi JSON v skladu s preprosto shemo.

Oblika diagrama

Shema je predmet JSON, kjer je vsak ključ ime proizvedenega polja, vrednost pa je tip Faker. Avtor: primer:

{
  "ime": "ime",
  "e-pošta": "e-pošta",
  "age": "številka 18-65",
  "aktiven": "boolean",
  "registered_on": "datum"
}

Orodje nato ustvari N posnetkov, ki upoštevajo to shemo, v izbranem jeziku (francoščina oz angleščina). Rezultat je polje JSON, ki ga je mogoče uporabiti neposredno kot stalnico, kot telo zahteve API ali kot vnos v sejalnik baze podatkov.

Podprte vrste

  • ime: polno ime (»Marie Dupont«).
  • ime / priimek: ime in priimek sta ločena.
  • email: lažni e-poštni naslov (uporablja safeEmail podjetja Faker, ki ustvari rezervirane domene example.com niso dosegljive).
  • telefon: lokalno oblikovana telefonska številka.
  • naslov: polni poštni naslov.
  • število: privzeto naključno celo število med 0 in 1000 ali število a-b za prilagojen izbor.
  • boolean: true ali false naključno.
  • datum: datum v formatu ISO 8601 (LLLL-MM-DD).
  • uuid: UUID v4.
  • besedilo: kratek lorem-ipsumesque odstavek (~120 znakov).
  • niz: tri naključne besede.
  • url: navidezni URL (https://example.org/...).

Vse neprepoznane vrste se ohranijo takšne, kot so v rezultatu. To je izbira: če postavite "role": "admin" v shemi bo imel vsak zapis "role": "admin". to omogoča mešanje konstantnih vrednosti in dinamičnih polj brez spreminjanja orodij.

Izbira lokacije

Faker ima na desetine prostorov. Orodje izpostavi dva najbolj uporabna v kontekstu francosko govoreči:

  • fr_FR: francoska imena, francoski naslovi, telefonske številke v francoski obliki, lorem-ipsum stavki v približni francoščini.
  • en_US: Ameriška imena in naslovi, telefonske številke v ameriški obliki.

Za doslednost predstavitev na francoski strani izberite fr_FR. Za preizkus internacionalizacijo, zmešajte obe izvedbi ali povečajte število zapisov iz različnih izvorov.

Primeri uporabe

  • Testni popravki: ustvarite 50 uporabnikov, prilepite jih v datoteko YAML iz AliceBundle ali sejalnika. Ponovljivo, ko nastavite seme Faker, sicer pa spremenljivo.
  • Modeje uporabniškega vmesnika: izpolnite tabelo React/Vue z verjetnimi podatki. Veliko bolj smiselno kot prazno polje ali foo / bar / baz.
  • Preskusna obremenitev: ustvarite veliko koristno obremenitev JSON za preizkus prepustnosti (k6, JMeter, kobilica).
  • Komercialne predstavitve: izpolnite predstavitveni primerek z vnosi, ki spominjajo na resnične primere, vendar ne tvegajo uhajanja občutljivih informacij.
  • Anonimizacija: zamenjajte proizvodni izvoz z navideznim enakovrednim prejšnjim delite s podizvajalcem ali uporabite v predprodukciji.

Prostovoljne omejitve

Da bi orodje ostalo preprosto za uporabo, ne podpira ugnezdenih shem (polja, ki bi bilo samo po sebi predmet ali niz predmetov). Za takšne potrebe je bolje napisati namensko Faker skripto oz pokličite več zaporednih klicev. Prostovoljna omejitev se tudi izogiba absurdnim kombinacijam ("items": "name" z naključno kardinalnostjo), zaradi česar bi bilo orodje manj predvidljivo.

Število zapisov je omejeno na 500. Poleg tega pričakujemo okolje preizkusite, ali generira svoje napeljave prek namenske kode (Faker v CLI, Foundry, factory_bot itd.). Spletno orodje je uporaben za do nekaj sto zapisov; poleg tega plato spomina in odzivnega časa izkušnje.

Ponovljivost in varnost

Vrednosti so proizvedene z nedeterminističnim PRNG: vsaka izvedba ustvari podatke drugačen. Za teste, ki morajo biti ponovljivi (CI), zajemite rezultat enkrat in storiti. Za resnično občutljive podatke (anonimizacija proizvodnje) upoštevajte, da generiranje na strani javnega strežnika ni pravi kanal: raje lokalni skript, ki nikoli ne zapusti vaš položaj.

Pogosta vprašanja

Ali so ustvarjena e-poštna sporočila veljavna?

Format je veljaven (RFC 5322), vendar je domena example.com ali enakovredna rezervirana s strani IANA. Nobeden od teh e-poštnih naslovov ne more prejemati sporočil; to je prostovoljno, da bi se izognili neželeni pošti naključno na resničnih naslovih.

Ali lahko večkrat pridobim isti nabor podatkov?

Ne prek spletnega vmesnika: orodje ne nastavi semena. Za natančno ponovljivost skriptirajte lokalna generacija s Fakerjem in fiksnim semenom ($faker->seed(1234);).

Kako ustvariti ugnezdeni predmet?

Orodje podpira le ploščat diagram. Za vdelane naknadno obdelajte izpis s skriptom oz neposredno napišite ustrezno kodo Faker.

Zakaj so vse moje številke med 0 in 1000?

To je privzeti obseg. Določite obseg: "age": "number 18-65", "cena": "številka 1-9999" itd.

Kakšne so povezave z drugimi orodji na spletnem mestu?

Za količinske UUID-je si oglejte generator UUID-jev. Za gesel, generator gesel. Za besedilo, generator besedila. Lažni generator podatkov je orodje transverzala, ki združuje več teh generacij.

Primer zahteve

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"}'

Vhodna shema

Polje Tip Obvezno Privzeto
schema text {"name": "name", "email": "email", "age": "number 18-65"}
count integer 5
locale choice (fr_FR, en_US) fr_FR

Končne točke

  • GET https://cdrn.fr/api/v1/tools - izpiše vsa razpoložljiva orodja
  • GET https://cdrn.fr/api/v1/tools/mock-data-generator - pridobi shemo tega orodja
  • POST https://cdrn.fr/api/v1/tools/mock-data-generator/execute - izvede to orodje s JSON payloadom