Your Web News in One Place

Help Webnuz

Referal links:

Sign up for GreenGeeks web hosting
May 4, 2021 04:47 am GMT

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"

Example Swagger UI - Page 1
Example Swagger UI - Page 2
Example Swagger UI - Page 3
Example Swagger UI - Page 4


Original Link: https://dev.to/ghandic/jsf-faking-json-data-from-a-schema-5bj0

Share this article:    Share on Facebook
View Full Article

Dev To

An online community for sharing and discovering great ideas, having debates, and making friends

More About this Source Visit Dev To