Skip to main content

Flask extension to validate JSON requests

Project description

Flask-json-schema

This extension makes it easy to validate JSON data that is sent to your Flask app using the jsonschema spec

Setup

Flask-json-schema is available on PyPI and can be installed with

pip install flask-json-schema

The extension can either be initialized directly:

from flask import Flask
from flask_json_schema import JsonSchema

app = Flask(__name__)
schema = JsonSchema(app)

Or through the factory method:

schema = JsonSchema()

app = Flask(__name__)
schema.init_app(app)

Quick example

from flask_json_schema import JsonSchema, JsonValidationError
from flask import Flask, jsonify, request

app = Flask(__name__)
schema = JsonSchema(app)

todo_schema = {
    'required': ['todo'],
    'properties': {
        'todo': { 'type': 'string' },
        'priority': { 'type': 'integer' },
    }
}

todos = []

@app.errorhandler(JsonValidationError)
def validation_error(e):
    return jsonify({ 'error': e.message, 'errors': [validation_error.message for validation_error  in e.errors]})

@app.route('/todo', methods=['GET', 'POST'])
@schema.validate(todo_schema)
def create_message():
    if request.method == 'POST':
        todos.append( request.get_json() )
        return jsonify({ 'success': True, 'message': 'Created todo' })

    return jsonify(todos)

app.run('0.0.0.0', 5000, debug=True)

See example.py for the source code

Links

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-json-schema-0.0.5.tar.gz (2.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

Flask_json_schema-0.0.5-py3-none-any.whl (2.9 kB view details)

Uploaded Python 3

File details

Details for the file Flask-json-schema-0.0.5.tar.gz.

File metadata

File hashes

Hashes for Flask-json-schema-0.0.5.tar.gz
Algorithm Hash digest
SHA256 b6f9f7c4d0be644ab6e5a780733edb2e09c132c09a4f64756e3d45c19e35c967
MD5 81ee4499aeefa1d15488460e5fdd1ebe
BLAKE2b-256 5fbf93a452f97f9369e0f5288f3566aef0f66f7420cccf509ba5c1ea401d283a

See more details on using hashes here.

File details

Details for the file Flask_json_schema-0.0.5-py3-none-any.whl.

File metadata

File hashes

Hashes for Flask_json_schema-0.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 e0e19fcd9092fac51e70a5f5f59de24837a821a89cb7323d702c46846202bea0
MD5 95b3bed308ae73d3845c9a5e3c290d6d
BLAKE2b-256 0f02a901d29b5b6f48e5cff98620d012c32272f9cb65c793dc0fd67a1335eff6

See more details on using hashes here.

Supported by

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