Ģenerēt viltus JSON datu kopu
- Vadības panelis
- Dokumentācija
- API
Kam tiek izmantoti fiktīvie dati?
Nepieciešamība rodas visos attīstības cikla posmos. Demonstrācijai mums ir nepieciešami lietotāji ticams, nav saīsināts Lorem Ipsum. Integrācijas testiem mēs vēlamies datu kopu reproducējams, bet daudzveidīgs. Pirmsražošanas vidē, kas izolēta no GDPR, mēs aizstājam datus reāli ar mākslīgiem ekvivalentiem. UI modelim tabulas ir jāaizpilda ar ierakstiem ticams. fiktīvo datu ģenerators aptver šos gadījumus, producējot JSON ieraksti, kas atbilst vienkāršai shēmai.
Diagrammas formāts
Shēma ir JSON objekts, kur katra atslēga ir izveidotā lauka nosaukums un vērtība ir Faker tips. Autors piemērs:
{
"nosaukums": "vārds",
"email": "e-pasts",
"vecums": "numurs 18-65",
"aktīvs": "būla",
"registered_on": "datums"
}
Pēc tam rīks ģenerē N ierakstus, ievērojot šo shēmu, izvēlētajā lokalizācijā (franču vai angļu valodā). Rezultāts ir JSON masīvs, ko var izmantot tieši kā fiksatoru kā pieprasījuma pamattekstu API vai kā ievadi datu bāzes sējējam.
Atbalstītie veidi
- vārds: pilns vārds (“Marie Dupont”).
- firstName / lastName: vārds un uzvārds ir atdalīti.
- e-pasts: viltota e-pasta adrese (izmanto
safeEmailno Faker, kas ražo rezervētie domēniexample.comnav sasniedzami). - tālrunis: lokāli formatēts tālruņa numurs.
- adrese: pilna pasta adrese.
- skaitlis: nejaušs vesels skaitlis no 0 līdz 1000 pēc noklusējuma vai
skaitlis a-bpersonalizētu klāstu. - būla:
truevaifalsenejauši. - datums: datums ISO 8601 formātā (
GGGG-MM-DD). - uuid: UUID v4.
- teksts: īsa, īsa rindkopa (apmēram 120 rakstzīmes).
- virkne: trīs nejauši izvēlēti vārdi.
- url: fiktīvs URL (
https://example.org/...).
Visi neatpazītie veidi tiek saglabāti kā rezultātā. Tā ir izvēle: ja jūs ievietojat
"role": "admin" shēmā katram ierakstam būs "role": "admin". Šis
ļauj sajaukt nemainīgas vērtības un dinamiskos laukus, nemainot rīkus.
Vietas izvēle
Fakeram ir desmitiem telpu. Šis rīks kontekstā atklāj divus visnoderīgākos franciski runājoši:
- fr_FR: vārdi franču valodā, adreses franču valodā, tālruņu numuri franču formātā, lorem-ipsum teikumi aptuvenā franču valodā.
- en_US: amerikāņu vārdi un adreses, tālruņu numuri ASV formātā.
Lai demonstrētu konsekvenci franču valodā, izvēlieties fr_FR. Par pārbaudi
internacionalizāciju, sajauciet abas izpildes vai palieliniet nepieciešamo ierakstu skaitu
no dažādas izcelsmes.
Lietošanas gadījumi
- Pārbaudes labojumi: ģenerējiet 50 lietotājus, ielīmējiet tos YAML failā no AliceBundle vai sējmašīnas. Reproducējams, iestatot Faker sēklu, citādi var mainīties.
- Lietotāja saskarnes maketi: aizpildiet React/Vue tabulu ar ticamiem datiem. Daudz
jēgpilnāk par tukšu masīvu vai
foo / bar / baz. - Pārbaudes slodze: ģenerējiet lielu JSON lietderīgo slodzi caurlaidspējas pārbaudei (k6, JMeter, sisenis).
- Komerciālās demonstrācijas: aizpildiet demonstrācijas gadījumu ar ievades datiem atgādina reālus gadījumus, taču neriskē nopludināt sensitīvu informāciju.
- Anonimizācija: iepriekš aizstājiet produkcijas eksportu ar fiktīvu ekvivalentu kopīgojiet to ar apakšuzņēmēju vai izmantojiet to pirmsražošanā.
Brīvprātīgie ierobežojumi
Lai rīks būtu vienkārši lietojams, rīks neatbalsta ligzdotas shēmas (lauks, kas pats par sevi būtu
objekts vai objektu masīvs). Šādām vajadzībām labāk ir uzrakstīt īpašu Faker skriptu vai
sastādīt vairākus secīgus zvanus. Brīvprātīgais ierobežojums izvairās arī no absurdām kombinācijām
("preces": "nosaukums" ar nejaušu kardinālu), kas padarītu rīku mazāk paredzamu.
Ierakstu skaits ir ierobežots līdz 500. Turklāt mēs sagaidām tādu vidi pārbaudiet, vai tas ģenerē savus armatūru, izmantojot īpašu kodu (Faker in CLI, Foundry, factory_bot utt.). Tīmekļa rīks ir noderīga līdz dažiem simtiem ierakstu; ārpus tā, atmiņas un reakcijas laika plato pieredze.
Reproducējamība un drošība
Vērtības tiek veidotas ar nedeterministisku PRNG: katra izpilde rada datus dažādi. Testiem, kuriem ir jābūt reproducējamiem (CI), tveriet izvadi vienreiz un apņemies to. Lai iegūtu patiesi sensitīvus datus (ražošanas anonimizācija), ņemiet vērā, ka publiskā servera puses ģenerēšana nav īstais kanāls: dodiet priekšroku vietējam skriptam, kas nekad neiziet savu pozīciju.
Bieži uzdotie jautājumi
Vai ģenerētie e-pasta ziņojumi ir derīgi?
Formāts ir derīgs (RFC 5322), bet domēns ir example.com vai līdzvērtīgs rezervēts
autors IANA. Neviens no šiem e-pastiem nevar saņemt ziņojumus; tas ir brīvprātīgi, lai izvairītos no surogātpasta
nejauši uz īstām adresēm.
Vai es varu iegūt vienu un to pašu datu kopu vairākas reizes?
Ne izmantojot tīmekļa saskarni: rīks neiestata sēklu. Lai nodrošinātu stingru reproducējamību, skriptu
vietējā paaudze ar Faker un fiksētu sēklu ($faker->seed(1234);).
Kā ģenerēt ligzdotu objektu?
Rīks atbalsta tikai plakanu diagrammu. Iegultai, pēcapstrādājiet izvadi ar skriptu vai tieši ierakstiet atbilstošo Faker kodu.
Kāpēc mani skaitļi ir no 0 līdz 1000?
Šis ir noklusējuma diapazons. Norādiet diapazonu: "vecums": "numurs 18-65",
"price": "numurs 1-9999" utt.
Kādas ir saites uz citiem vietnes rīkiem?
Lai uzzinātu par UUID daudzumu, skatiet UUID ģeneratoru. Par paroles, paroļu ģenerators. Tekstam, teksta ģenerators. Izspēles datu ģenerators ir rīks šķērsvirziena, kas apvieno vairākas no šīm paaudzēm.
Pieprasījuma piemērs
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"}'
Ievades shēma
| Lauks | Tips | Obligāts | Noklusējums |
|---|---|---|---|
schema |
text | ✓ | {"name": "name", "email": "email", "age": "number 18-65"} |
count |
integer | ✓ | 5 |
locale |
choice (fr_FR, en_US) | ✓ | fr_FR |
Endpoint
GET https://cdrn.fr/api/v1/tools- uzskaita visus pieejamos rīkusGET https://cdrn.fr/api/v1/tools/mock-data-generator- iegūst šī rīka shēmuPOST https://cdrn.fr/api/v1/tools/mock-data-generator/execute- izpilda šo rīku ar JSON payload