Рубрики
Без рубрики

JSF – подделка данных JSON из схемы

https://github.com/ghandic/jsf Используйте JSF наряду с поддельными генераторами данных для обеспечения согласованного и MEA … Теги с Python, Json, Faker, Fastapi.

https://github.com/ghandic/jsf

Использовать JSF Наряду с поддельными генераторами данных, чтобы обеспечить последовательные и значимые поддельные данные для вашей системы.

Основные характеристики

  • Предоставляет из поколения данных коробки с любой схемы JSON 📦
  • Расширяемые пользовательские поставщики данных, использующие любые функции лямбда 🔗
  • Состояние многоуровневого уровня для зависимых данных (например, множественные объекты обмена значениями, такими как дети с такой же фамилией) 🤓
  • Встроенная проверка поддельных JSON производится ✅
  • В преобразовании памяти с схемы JSON к Pydantics модели с генерируемыми примерами 🤯
  • Бесшовная интеграция с Fastapi 🚀

Установка

$ pip install jsf

---> 100%

Применение

Базовый 😊.

from jsf import JSF

faker = JSF(
    {
        "type": "object",
        "properties": {
            "name": {"type": "string", "$provider": "faker.name"},
            "email": {"type": "string", "$provider": "faker.email"},
        },
        "required": ["name", "email"],
    }
)

fake_json = faker.generate()

Результаты …

{
    'name': 'Jesse Phillips', 
    'email': 'xroberson@hotmail.com'
}

От файла json 📁

from jsf import JSF

faker = JSF.from_json("demo-schema.json")
fake_json = faker.generate()

Или бежать прямо из командная строка

Нативная установка

jsf --schema src/tests/data/custom.json --instance wow.json

Докер

docker run -v $PWD:/data challisa/jsf jsf --schema /data/custom.json --instance /data/example.json

Интеграция fastapi 🚀.

Создайте файл main.py с:

from jsf import JSF
from fastapi import FastAPI

app = FastAPI(docs_url="/")
generator = JSF.from_json("custom.json")


@app.get("/generate", response_model=generator.pydantic())
def read_root():
    return generator.generate()

Запустите сервер с:

$ uvicorn main:app --reload

INFO:     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.

Перейдите к http://127.0.0.1:8000 и проверить вашу конечную точку. Обратите внимание, что все автоматически созданы следующие:

  • Схема с описаниями и примерами
  • Пример ответа
  • Генерация данных, нажав «Пробуешься»

Оригинал: “https://dev.to/ghandic/jsf-faking-json-data-from-a-schema-5bj0”