Genereeri väljamõeldud JSON-andmestik

genereerib N JSON-kirjet, mis vastavad lihtsale skeemile, Fakerist (locale fr_FR või en_US)

Milleks näivaid andmeid kasutatakse?

Vajadus tekib arendustsükli kõigil etappidel. Demo jaoks vajame kasutajaid plausible, not truncated Lorem Ipsum. Integratsioonitestide jaoks tahame andmestikku reprodutseeritav, kuid mitmekesine. GDPR-ist eraldatud tootmiseelse keskkonna puhul asendame andmed reaalne kunstlike vastetega. Kasutajaliidese mudeli puhul peate täitma tabelid kirjetega usutav. Nimetatud andmete generaator katab need juhtumid tootmisega JSON-kirjed, mis vastavad lihtsale skeemile.

Diagrammi formaat

Skeem on JSON-objekt, kus iga võti on loodud välja nimi ja väärtus on Faker-tüüpi. poolt näide:

kood>{
  "nimi": "nimi",
  "email": "e-post",
  "vanus": "number 18-65",
  "active": "boolean",
  "registered_on": "kuupäev"
}

Seejärel genereerib tööriist N selle skeemi järgi salvestust valitud lokaadis (prantsuse või inglise keel). Tulemuseks on JSON-i massiiv, mida saab kasutada otse kinnitusena, päringu sisuna API või andmebaasi külvaja sisendiks.

Toetatud tüübid

  • nimi: täisnimi (“Marie Dupont”).
  • eesnimi / perenimi: ees- ja perekonnanimi on eraldatud.
  • e-post: võlts e-posti aadress (kasutab safeEmaili firmalt Faker, mis toodab reserveeritud domeenid example.com ei ole kättesaadavad).
  • telefon: lokaalselt vormindatud telefoninumber.
  • address: full postal address.
  • arv: vaikimisi juhuslik täisarv vahemikus 0 kuni 1000 või number a-b isikupärastatud valik.
  • tõeväärtus: tõene või false juhuslik.
  • kuupäev: kuupäev ISO 8601 vormingus (AAAA-KK-PP).
  • uuid: UUID v4.
  • tekst: lühike lorem-ipsumesque lõik (~120 tähemärki).
  • string: kolm juhuslikku sõna.
  • url: näiv URL (https://example.org/...).

Kõik tundmatud tüübid jäetakse tulemuses alles. See on valik: kui paned "role": "admin" skeemis on igal kirjel "role": "admin". See võimaldab segada konstantseid väärtusi ja dünaamilisi välju ilma tööriistu vahetamata.

Asukoha valik

Fakeril on kümneid ruume. Tööriist toob kontekstis välja kaks kõige kasulikumat prantsuse keelt kõnelev:

  • fr_FR: prantsuskeelsed nimed, prantsuskeelsed aadressid, telefoninumbrid prantsuse keeles, lorem-ipsum laused ligikaudses prantsuse keeles.
  • et_EE: Ameerika nimed ja aadressid, telefoninumbrid USA formaadis.

Esitluse järjepidevuse tagamiseks prantsuse poolel valige fr_FR. Testi jaoks rahvusvahelistumine, segage kaks hukkamist või suurendage kirjete arvu mitmesugusest päritolust.

Kasutusjuhtumid

  • Testiparandused: looge 50 kasutajat, kleepige need YAML-faili AliceBundle'ist või külvikust. Reprodutseeritav, kui määrate Fakeri seemne, muul viisil varieeruda.
  • Kasutajaliidese maketid: täitke React/Vue tabel usutavate andmetega. Palju tähendusrikkam kui tühi massiiv või foo / bar / baz.
  • Testi koormus: genereerige läbilaskevõime testi jaoks suur JSON-i kasulik koormus (k6, JMeter, Jaanileivapuu).
  • Kaubanduslikud demod: sisestage demoeksemplar sisenditega meenutavad tegelikke juhtumeid, kuid ei riski tundliku teabe lekkimisega.
  • Anonüümseks muutmine: asendage toodangu eksport enne näiva ekvivalendiga jagada seda alltöövõtjaga või kasutada eeltootmises.

Vabatahtlikud piirangud

Et tööriist oleks lihtne kasutada, ei toeta pesastatud skeeme (väli, mis ise oleks objekt või objektide massiiv). Selliste vajaduste jaoks on parem kirjutada spetsiaalne Fakeri skript või helistada mitu järjestikust kõnet. Vabatahtlikkuse piirang väldib ka absurdseid kombinatsioone ("esemed": "nimi" juhusliku kardinaalsusega), mis muudaks tööriista vähem etteaimatavaks.

Kirjete arv on piiratud 500-ga. Peale selle ootame keskkonda testige, kas see genereerib oma kinnitused spetsiaalse koodi abil (Faker CLI-s, Foundry, factory_bot jne). Veebitööriist on kasulik kuni mõnesaja plaadi puhul; peale selle, mälu ja reageerimisaja platoo kogemusi.

Reprodutseeritavus ja ohutus

Väärtused luuakse mittedeterministliku PRNG-ga: iga täitmine toodab andmeid erinev. Testide puhul, mis peavad olema reprodutseeritavad (CI), jäädvustage väljund üks kord ja pane see toime. Tõeliselt tundlike andmete puhul (tootmise anonüümseks muutmine) pidage meeles, et avaliku serveripoolne genereerimine ei ole õige kanal: eelistage kohalikku skripti, mis kunagi ei välju oma positsiooni.

Korduma kippuvad küsimused

Kas loodud meilid on kehtivad?

Vorming on kehtiv (RFC 5322), kuid domeen on example.com või samaväärne reserveeritud IANA poolt. Ükski neist meilidest ei saa sõnumeid vastu võtta; see on vabatahtlik rämpsposti vältimiseks kogemata tegelikel aadressidel.

Kas ma saan sama andmestikku mitu korda hankida?

Mitte veebiliidese kaudu: tööriist ei määra seemet. Rangelt reprodutseeritavuse tagamiseks skriptige kohalik põlvkond Fakeri ja fikseeritud seemnega ($faker->seeme(1234);).

Kuidas luua pesastatud objekti?

Tööriist toetab ainult lamedat diagrammi. Manustatud puhul järeltöötlege väljundit skriptiga või kirjutage otse vastav võltsimiskood.

Miks on minu numbrid kõik vahemikus 0 kuni 1000?

See on vaikevahemik. Määrake vahemik: "vanus": "number 18-65", "price": "number 1-9999" jne.

Millised on lingid saidi muudele tööriistadele?

UUID-de koguste kohta vaadake UUID-generaatorit. Sest paroolid, parooligeneraator. Teksti jaoks tekstigeneraator. Tööriist on näidisandmete generaator transversaalne, mis ühendab mitut neist põlvkondadest.

Päringunäide

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

Sisendskeem

Väli Tüüp Kohustuslik Vaikimisi
schema text {"name": "name", "email": "email", "age": "number 18-65"}
count integer 5
locale choice (fr_FR, en_US) fr_FR

Lõpp-punktid

  • GET https://cdrn.fr/api/v1/tools - loetleb kõik saadaolevad tööriistad
  • GET https://cdrn.fr/api/v1/tools/mock-data-generator - toob selle tööriista skeemi
  • POST https://cdrn.fr/api/v1/tools/mock-data-generator/execute - täidab selle tööriista JSON-payloadiga