An Interest In:
Web News this Week
- May 1, 2024
- April 30, 2024
- April 29, 2024
- April 28, 2024
- April 27, 2024
- April 26, 2024
- April 25, 2024
May 4, 2021 04:47 am GMT
Original Link: https://dev.to/ghandic/jsf-faking-json-data-from-a-schema-5bj0
jsf - Faking JSON data from a schema
https://github.com/ghandic/jsf
Use jsf along with fake data generators to provide consistent and meaningful fake data for your system.
Main Features
- Provides out of the box data generation from any JSON schema
- Extendable custom data providers using any lambda functions
- Multi level state for dependant data (eg multiple objects sharing value, such as children with same surname)
- Inbuilt validation of fake JSON produced
- In memory conversion from JSON Schema to Pydantic Models with generated examples
- Seamless integration with FastAPI
Installation
$ pip install jsf---> 100%
Usage
Basic
from jsf import JSFfaker = JSF( { "type": "object", "properties": { "name": {"type": "string", "$provider": "faker.name"}, "email": {"type": "string", "$provider": "faker.email"}, }, "required": ["name", "email"], })fake_json = faker.generate()
Results in ...
{ 'name': 'Jesse Phillips', 'email': '[email protected]'}
From JSON file
from jsf import JSFfaker = JSF.from_json("demo-schema.json")fake_json = faker.generate()
Or run stright from the commandline
...
Native install
jsf --schema src/tests/data/custom.json --instance wow.json
Docker
docker run -v $PWD:/data challisa/jsf jsf --schema /data/custom.json --instance /data/example.json
FastAPI Integration
Create a file main.py with:
from jsf import JSFfrom fastapi import FastAPIapp = FastAPI(docs_url="/")generator = JSF.from_json("custom.json")@app.get("/generate", response_model=generator.pydantic())def read_root(): return generator.generate()
Run the server with:
$ uvicorn main:app --reloadINFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)INFO: Started reloader process [28720]INFO: Started server process [28722]INFO: Waiting for application startup.INFO: Application startup complete.
Navigate to http://127.0.0.1:8000 and check out your endpoint. Notice the following are all automatically created:
- Schema with descriptions and examples
- Example response
- Data generation by clicking "try it out"
Original Link: https://dev.to/ghandic/jsf-faking-json-data-from-a-schema-5bj0
Share this article:
Tweet
View Full Article
Dev To
An online community for sharing and discovering great ideas, having debates, and making friendsMore About this Source Visit Dev To