Flask extension to validate JSON requests using the jsonschema spec
MIT License
This extension makes it easy to validate JSON data that is sent to your Flask app using the jsonschema spec
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)
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