Skip to main content

A flask/quart extension to provide schema validation with pydantic.

Project description

schema-validator

Generate from quart-schema

Install

  • pip install schema-validator
How to use
    from dataclasses import dataclass
    from datetime import datetime
    from typing import Optional
    from pydantic import BaseModel

    from flask import Flask
    from quart import Quart
    from schema_validator import SchemaValidator
    from schema_validator.flask import validate
    # from schema_validator.quart import validate


    app = Flask(__name__)

    # or 
    app = Quart(__name__)
    
    
    OR
    
    schema = SchemaValidator(app)
    schema.init_app(app)

    @dataclass
    class Todo:
        task: str
        due: Optional[datetime]

    class TodoResponse(BaseModel):
        id: int
        name: str

    @app.post("/")
    @validate(body=Todo, responses=TodoResponse)
    def create_todo():
        # balabala
        return dict(id=1, name="2")
        
    @app.get("/")
    @validate(
        query=Todo,
        responses={200: TodoResponse, 400: TodoResponse}
    )
    def update_todo():
        # balabala
        return TodoResponse(id=1, name="123")

    @app.delete("/")
    @validate(
        body=Todo,
        responses={200: TodoResponse}
    )
    def delete():
        # balabala
        return jsonify(id=1)

    @tags("SOME-TAG", "OTHER-TAG")  # only for swagger
    class View(MethodView):
        @validate(...)
        def get(self):
            return {}
       
    
How to show the swagger

app.config["SWAGGER_ROUTE"] = True

http://yourhost/swagger/docs   -> show the all swagger

http://yourhost/swagger/docs/{tag} -> show the swagger which include tag

How to export the swagger
add command in flask/quart:
    app.cli.add_command(generate_schema_command)

Export all swagger to json file:

 - flask/quart schema -o swagger.json

Export the swagger which include the ACCOUNT tag:

 - flask/quart schema -o swagger.json -t ACCOUNT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

schema_validator-0.2.5.tar.gz (10.0 kB view details)

Uploaded Source

Built Distribution

schema_validator-0.2.5-py3-none-any.whl (14.1 kB view details)

Uploaded Python 3

File details

Details for the file schema_validator-0.2.5.tar.gz.

File metadata

  • Download URL: schema_validator-0.2.5.tar.gz
  • Upload date:
  • Size: 10.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.10 CPython/3.8.5 Darwin/19.5.0

File hashes

Hashes for schema_validator-0.2.5.tar.gz
Algorithm Hash digest
SHA256 bf80a8f9d55d1342a35b1f5422f7cbd33e5ba08dbcb56e6e99afff3608aae4e9
MD5 5d28fa5edb1f8b122504f02e90c424c8
BLAKE2b-256 57abfdaca277af898bb228e9e228a639bc8df2649814b67a0bdff9f223bd1bf0

See more details on using hashes here.

File details

Details for the file schema_validator-0.2.5-py3-none-any.whl.

File metadata

File hashes

Hashes for schema_validator-0.2.5-py3-none-any.whl
Algorithm Hash digest
SHA256 e8d3ff391e0bf58d4f5ac83f7932df2f598c96a4e9113c535db5a3153ad320c7
MD5 67bb8c02d3a3a54c7ec9d9738f16adb1
BLAKE2b-256 56304303cc886d835728dfbcbaadeef026064ca13fd687570dee31cc190d6819

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page