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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | d3a700904cd7160f74911c74846629bec788de449bbf321955ae97ec18cdb056 |
|
MD5 | 4a82a2e64d74edffd1e6879017f569eb |
|
BLAKE2b-256 | 4bfcc40e8eaf26f61018a34ee8823a363f974dd1ba7e24a178b20b591024c552 |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | ba31144e0194563c6df7dd525c47b357fa1379676254aa288c824759ba44019d |
|
MD5 | 50c72fe02728fce6f5dcb8cb820887b9 |
|
BLAKE2b-256 | c21c12a993eafc389e288d9aac672871918bea02fa41cc02ac25ce38aa36b8f7 |