Flask-OASSchema

Flask extension for validating JSON requests


License
MIT
Install
pip install Flask-OASSchema==0.9.4

Documentation

Flask-OASSchema

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