Generuoti netikrą JSON duomenų rinkinį
- Skydelis
- Dokumentacija
- API
Kam naudojami netikri duomenys?
Poreikis iškyla visuose vystymosi ciklo etapuose. Demonstracijai mums reikia vartotojų tikėtinas, nesutrumpintas Lorem Ipsum. Integracijos bandymams norime duomenų rinkinio atkuriamas, bet įvairus. Priešgamybinėje aplinkoje, atskirtoje nuo BDAR, pakeičiame duomenis realus dirbtiniais atitikmenimis. Jei naudojate vartotojo sąsajos modelį, lenteles turite užpildyti įrašais patikimas. Netikrų duomenų generatorius apima šiuos atvejus gamindamas JSON įrašai, atitinkantys paprastą schemą.
Diagramos formatas
Schema yra JSON objektas, kuriame kiekvienas raktas yra sukurto lauko pavadinimas, o vertė yra „Faker“ tipas. Autorius pavyzdys:
{
"vardas": "vardas",
"email": "email",
"amžius": "18-65 skaičius",
"aktyvus": "loginis",
"registred_on": "data"
}
Tada įrankis sugeneruoja N įrašų pagal šią schemą pasirinktoje vietovėje (prancūzų arba anglų kalba). Rezultatas yra JSON masyvas, kurį galima naudoti tiesiogiai kaip įtaisą, kaip užklausos turinį API arba kaip įvestį į duomenų bazės sėjamąją.
Palaikomi tipai
- vardas: visas vardas („Marie Dupont“).
- vardas / pavardė: vardas ir pavardė atskirti.
- el. paštas: netikras el. pašto adresas (naudoja
safeEmailiš Faker, kuris gamina rezervuoti domenaiexample.comnepasiekiami). - telefonas: vietinio formato telefono numeris.
- adresas: visas pašto adresas.
- skaičius: pagal numatytuosius nustatymus atsitiktinis sveikasis skaičius nuo 0 iki 1000 arba
skaičiai a-basmeninį asortimentą. - bulio reikšmė:
tiesaarbafalseatsitiktinė. - data: data ISO 8601 formatu (
YYYY-MM-DD). - uuid: UUID v4.
- tekstas: trumpa pastraipa (apie 120 simbolių).
- eilutė: trys atsitiktiniai žodžiai.
- url: netikras URL (
https://example.org/...).
Visi neatpažinti tipai paliekami tokie, kokie yra rezultate. Tai pasirinkimas: jei įdėsite
"role": "admin" schemoje kiekvienas įrašas turės "role": "admin". Tai
leidžia maišyti pastovias reikšmes ir dinaminius laukus nekeičiant įrankių.
Vietos pasirinkimas
Faker turi dešimtis patalpų. Įrankis kontekste atskleidžia du naudingiausius prancūziškai kalbantys:
- fr_FR: prancūziški vardai, adresai, telefonų numeriai prancūzišku formatu, lorem-ipsum sakiniai apytiksliai prancūzų kalba.
- en_US: Amerikos vardai ir adresai, telefonų numeriai JAV formatu.
Kad demonstravimas būtų nuoseklus prancūzų pusėje, pasirinkite fr_FR. Dėl testo
internacionalizavimą, sumaišykite dvi egzekucijas arba padidinkite turimų įrašų skaičių
iš įvairios kilmės.
Naudojimo atvejai
- Bandomieji pataisymai: sugeneruokite 50 naudotojų, įklijuokite juos į YAML failą iš AliceBundle arba sėjamosios. Atkuriamas, kai nustatote „Faker“ sėklą, kitaip skiriasi.
- NS maketai: užpildykite „React“ / „Vue“ lentelę patikimais duomenimis. Daug
prasmingesnis nei tuščias masyvas arba
foo / bar / baz. - Bandomoji apkrova: generuokite didelę JSON naudingąją apkrovą pralaidumo testui (k6, JMeter, Skėriai).
- Komercinės demonstracinės versijos: užpildykite demonstracinį egzempliorių naudodami įvestis primena tikrus atvejus, bet nerizikuoja nutekėti neskelbtinos informacijos.
- Anonimiškumas: pakeiskite produkcijos eksportą netikru ekvivalentu pasidalykite juo su subrangovu arba naudokite paruošiamojoje gamyboje.
Savanoriškos ribos
Kad būtų paprasta naudoti, įrankis nepalaiko įdėtųjų schemų (lauko, kuris pats būtų
objektas arba objektų masyvas). Tokiems poreikiams geriau parašyti tam skirtą Faker scenarijų arba
skambinti kelis skambučius iš eilės. Savanoriška riba taip pat leidžia išvengti absurdiškų derinių
("elementai": "pavadinimas" su atsitiktiniu kardinalumu), todėl įrankis būtų mažiau nuspėjamas.
Įrašų skaičius ribojamas iki 500. Be to, tikimės aplinkos patikrinkite, ar jis sugeneruoja savo įrenginius naudodamas tam skirtą kodą (Faker in CLI, Foundry, factory_bot ir kt.). Žiniatinklio įrankis naudingas iki kelių šimtų įrašų; be to, atminties ir reakcijos laiko plynaukštė patirtį.
Atkuriamumas ir saugumas
Reikšmės sukuriamos naudojant nedeterministinį PRNG: kiekvienas vykdymas sukuria duomenis skirtinga. Jei bandymai turi būti atkuriami (CI), vieną kartą užfiksuokite išvestį ir įsipareigoti. Jei norite gauti tikrai neskelbtinų duomenų (gamybos anonimiškumas), atminkite, kad viešojo serverio pusės generavimas nėra tinkamas kanalas: pirmenybę teikite vietiniam scenarijui, kuris niekada neišeina savo poziciją.
Dažnai užduodami klausimai
Ar sugeneruoti el. laiškai galioja?
Formatas yra tinkamas (RFC 5322), bet domenas yra example.com arba lygiavertis rezervuotas
pateikė IANA. Nė vienas iš šių el. laiškų negali gauti pranešimų; tai savanoriška, kad būtų išvengta šiukšlių
atsitiktiniai tikruose adresuose.
Ar galiu gauti tą patį duomenų rinkinį kelis kartus?
Ne per žiniatinklio sąsają: įrankis nenustato sėklos. Kad būtų užtikrintas griežtas atkuriamumas, parašykite scenarijų
vietinė karta su Faker ir fiksuota sėkla ($faker->seed(1234);).
Kaip sugeneruoti įdėtą objektą?
Įrankis palaiko tik plokščią diagramą. Jei naudojate įterptą, apdorokite išvestį scenariju arba tiesiogiai parašykite atitinkamą Faker kodą.
Kodėl mano skaičiai yra nuo 0 iki 1000?
Tai numatytasis diapazonas. Nurodykite diapazoną: "amžius": "numeris 18–65",
"kaina": "numeris 1-9999" ir kt.
Kokios nuorodos į kitus įrankius svetainėje?
Norėdami sužinoti UUID skaičių, žr. UUID generatorių. Už slaptažodžius, slaptažodžių generatorių. Dėl teksto, teksto generatorius. Apgaulingų duomenų generatorius yra įrankis skersinis, jungiantis kelias iš šių kartų.
Užklausos pavyzdys
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"}'
Įvesties schema
| Laukas | Tipas | Privalomas | Numatytasis |
|---|---|---|---|
schema |
text | ✓ | {"name": "name", "email": "email", "age": "number 18-65"} |
count |
integer | ✓ | 5 |
locale |
choice (fr_FR, en_US) | ✓ | fr_FR |
Galiniai taškai
GET https://cdrn.fr/api/v1/tools- išvardija visus galimus įrankiusGET https://cdrn.fr/api/v1/tools/mock-data-generator- gauna šio įrankio schemąPOST https://cdrn.fr/api/v1/tools/mock-data-generator/execute- vykdo šį įrankį su JSON payload