Generirati fiktivni JSON skup podataka

generira N JSON zapisa koji odgovaraju jednostavnoj shemi, iz Fakera (locale fr_FR ili en_US)

Za što se koriste lažni podaci?

Potreba se javlja u svim fazama razvojnog ciklusa. Za demo, potrebni su nam korisnici vjerojatan, ne skraćen Lorem Ipsum. Za integracijske testove želimo skup podataka ponovljiv, ali raznolik. Za predprodukcijsko okruženje izolirano od GDPR-a, zamjenjujemo podatke pravi umjetnim ekvivalentima. Za model korisničkog sučelja, morate popuniti tablice s unosima vjerodostojan. Lažni generator podataka pokriva te slučajeve proizvodnjom JSON zapisi u skladu s jednostavnom shemom.

Format dijagrama

Shema je JSON objekt gdje je svaki ključ naziv proizvedenog polja, a vrijednost je lažni tip. od strane primjer:

{
  "ime": "ime",
  "e-pošta": "e-pošta",
  "dob": "broj 18-65",
  "aktivan": "booleov",
  "registered_on": "datum"
}

Alat zatim generira N snimaka u skladu s ovom shemom, na odabranom jeziku (francuski ili engleski). Rezultat je JSON niz koji se može koristiti izravno kao fixture, kao tijelo zahtjeva API, ili kao unos za sijač baze podataka.

Podržane vrste

  • ime: puno ime (“Marie Dupont”).
  • ime / prezime: ime i prezime odvojeni.
  • e-mail: lažna adresa e-pošte (koristi safeEmail od Fakera, koji proizvodi rezervirane domene example.com nisu dostupne).
  • telefon: lokalno formatirani telefonski broj.
  • adresa: puna poštanska adresa.
  • broj: nasumični cijeli broj između 0 i 1000 prema zadanim postavkama ili broj a-b za personalizirani asortiman.
  • boolean: true ili false nasumično.
  • datum: datum u formatu ISO 8601 (GGGG-MM-DD).
  • uuid: UUID v4.
  • tekst: kratki lorem-ipsumesque odlomak (~120 znakova).
  • string: tri nasumične riječi.
  • url: lažni URL (https://example.org/...).

Svi neprepoznati tipovi ostaju takvi kakvi jesu u rezultatu. To je izbor: ako stavite "role": "admin" u shemi, svaki će zapis imati "role": "admin". Ovo omogućuje vam miješanje konstantnih vrijednosti i dinamičkih polja bez mijenjanja alata.

Izbor lokacije

Faker ima desetke lokala. Alat izlaže dva najkorisnija u kontekstu francuski govorni:

  • fr_FR: francuska imena, francuske adrese, telefonski brojevi u francuskom formatu, lorem-ipsum rečenice na približnom francuskom.
  • en_US: Američka imena i adrese, telefonski brojevi u američkom formatu.

Za demonstraciju dosljednosti na francuskoj strani odaberite fr_FR. Za probu internacionalizaciju, pomiješajte dva izvršenja ili povećajte broj zapisa iz raznih podrijetla.

Slučajevi upotrebe

  • Testni popravci: generirajte 50 korisnika, zalijepite ih u YAML datoteku iz AliceBundlea ili sijača. Može se reproducirati kada postavite Faker seed, inače varirati.
  • Mockups korisničkog sučelja: ispunite React/Vue tablicu uvjerljivim podacima. Puno smisleniji od praznog niza ili foo / bar / baz.
  • Testno opterećenje: generirajte veliki JSON sadržaj za test propusnosti (k6, JMeter, skakavac).
  • Komercijalne demonstracije: popunite demo instancu unosima koji nalikuju stvarnim slučajevima, ali ne riskiraju curenje osjetljivih informacija.
  • Anonimizacija: zamijeni proizvodni izvoz lažnim ekvivalentom prije podijelite ga s podizvođačem ili ga upotrijebite u pretprodukciji.

Dobrovoljna ograničenja

Kako bi ostao jednostavan za korištenje, alat ne podržava ugniježđene sheme (polje koje bi samo po sebi bilo objekt ili niz objekata). Za takve potrebe bolje je napisati namjensku Faker skriptu, ili birajte nekoliko uzastopnih poziva. Dobrovoljno ograničenje također izbjegava apsurdne kombinacije ("items": "name" sa slučajnom kardinalnošću) što bi alat učinilo manje predvidljivim.

Broj zapisa ograničen je na 500. Osim toga, očekujemo okruženje od testirajte da generira svoje uređaje putem namjenskog koda (Faker u CLI, Foundry, factory_bot, itd.). Web alat koristan je za do nekoliko stotina zapisa; osim toga, memorija i vrijeme odziva plato iskustvo.

Ponovljivost i sigurnost

Vrijednosti se proizvode s nedeterminističkim PRNG-om: svako izvršenje proizvodi podatke drugačiji. Za testove koji moraju biti ponovljivi (CI), uhvatite izlaz jednom i počiniti to. Za doista osjetljive podatke (anonimizacija proizvodnje), imajte na umu da javno generiranje na strani poslužitelja nije pravi kanal: preferirajte lokalnu skriptu koja nikada ne izlazi vaš položaj.

Često postavljana pitanja

Jesu li generirane e-poruke važeće?

Format je valjan (RFC 5322), ali domena je example.com ili ekvivalentno rezervirano od strane IANA-e. Nijedna od ovih adresa e-pošte ne može primati poruke; ovo je dobrovoljno kako bi se izbjegla neželjena pošta slučajno na stvarnim adresama.

Mogu li dobiti isti skup podataka više puta?

Ne putem web sučelja: alat ne postavlja početnu vrijednost. Za striktnu ponovljivost, skriptirajte lokalna generacija s Fakerom i fiksnim sjemenom ($faker->seed(1234);).

Kako generirati ugniježđeni objekt?

Alat podržava samo ravni dijagram. Za ugrađene, naknadno obradite izlaz skriptom ili izravno napisati odgovarajući Faker kod.

Zašto su svi moji brojevi između 0 i 1000?

Ovo je zadani raspon. Navedite raspon: "dob": "broj 18-65", "cijena": "broj 1-9999" itd.

Koje su veze s drugim alatima na web mjestu?

Za količinske UUID-ove, pogledajte UUID generator. Za zaporke, generator zaporki. Za tekst, generator teksta. Lažni generator podataka je alat transverzala koja spaja nekoliko ovih generacija.

Primjer zahtjeva

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

Ulazna shema

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

Krajnje točke

  • GET https://cdrn.fr/api/v1/tools - ispisuje sve dostupne alate
  • GET https://cdrn.fr/api/v1/tools/mock-data-generator - dohvaća shemu ovog alata
  • POST https://cdrn.fr/api/v1/tools/mock-data-generator/execute - izvršava ovaj alat s JSON payloadom