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.

Source Distribution

Flask-OASSchema-0.9.14.tar.gz (4.1 kB view details)

Uploaded Source

Built Distribution

Flask_OASSchema-0.9.14-py3-none-any.whl (5.1 kB view details)

Uploaded Python 3

File details

Details for the file Flask-OASSchema-0.9.14.tar.gz.

File metadata

  • Download URL: Flask-OASSchema-0.9.14.tar.gz
  • Upload date:
  • Size: 4.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.8.1

File hashes

Hashes for Flask-OASSchema-0.9.14.tar.gz
Algorithm Hash digest
SHA256 d3a700904cd7160f74911c74846629bec788de449bbf321955ae97ec18cdb056
MD5 4a82a2e64d74edffd1e6879017f569eb
BLAKE2b-256 4bfcc40e8eaf26f61018a34ee8823a363f974dd1ba7e24a178b20b591024c552

See more details on using hashes here.

File details

Details for the file Flask_OASSchema-0.9.14-py3-none-any.whl.

File metadata

  • Download URL: Flask_OASSchema-0.9.14-py3-none-any.whl
  • Upload date:
  • Size: 5.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.8.1

File hashes

Hashes for Flask_OASSchema-0.9.14-py3-none-any.whl
Algorithm Hash digest
SHA256 ba31144e0194563c6df7dd525c47b357fa1379676254aa288c824759ba44019d
MD5 50c72fe02728fce6f5dcb8cb820887b9
BLAKE2b-256 c21c12a993eafc389e288d9aac672871918bea02fa41cc02ac25ce38aa36b8f7

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