Skip to main content

Flask extension for validating JSON requests

Project description

JSON request validation for Flask applications using a JSON Schema specified in a OpenAPI Specification (also know as OAS and Swagger).

Validating schema of passed object provides a level of confidence of correctness of data directly proportional to schema strictness. With a good schema, it maybe be possible to use JSON-dict like object as first order models without having to convert them into trusted python objects. Reducing amount of code that needs to be maintained.

The tests provide a succinct example of usage as well as an example OAS schema file. But at high level usage looks as follows:

from flask import Flask
from flask_oasschema import OASSchema, validate_request

# Configure application
app = Flask(__name__)

# Specify path to the OAS schema file, in this case schemas/oas.json of
# project firectory
app.config['OAS_FILE'] = os.path.join(
    app.root_path,
    'schemas',
    'oas.json'
)

# Initialize validator
jsonschema = OASSchema(app)

# Decorate endpoint with @validate_request()
@app.route('/books/<isbn>', methods=['POST'])
@validate_request()
def books(isbn):
    return 'success'

Installation

This library is available through PyPI as Flask-OASSchema and as such can be installed with:

pip install Flask-OASSchema

Credit

This project is a fork of Matt Wright’s project Flask-JsonSchema and thus borrows ideas and code. Difference being that Flask-OASSchema works only with OAS (Swagger) style schema spec as opposed to raw json-schema. This allows Flask-OASSchema to locate schema corresponding to endpoint and method without explicit per endpoint configuration.

Authors: Dan Baumann Thanavath Jaroenvanit

Project details


Download files

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

Files for Flask-OASSchema, version 0.9.14
Filename, size File type Python version Upload date Hashes
Filename, size Flask_OASSchema-0.9.14-py3-none-any.whl (5.1 kB) File type Wheel Python version py3 Upload date Hashes View
Filename, size Flask-OASSchema-0.9.14.tar.gz (4.1 kB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring DigiCert DigiCert EV certificate Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page