Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

flask-jsonschema-validator

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

flask-jsonschema-validator

Validate Flask JSON request data with schema files and route decorators

  • 0.0.4
  • PyPI
  • Socket score

Maintainers
1

Flask JSON Schema Validator

Validate Flask JSON request data with schema files and route decorators.

Author

Daniel 'Vector' Kerr (vector@vector.id.au)

License

Refer to LICENSE.txt.

Installation

pip install flask-jsonschema-validator

Sample Usage

Python Code

main.py

from flask import Flask, request, jsonify
from flask_jsonschema_validator import JSONSchemaValidator

app = Flask()
JSONSchemaValidator( app = app, root = "schemas" )

# Define a normal flask route, and then apply the `validate` decorator.
# Look for the `users.json` file, and use the `register` key as the schema source.
@app.route( '/register', methods = [ 'POST' ] )
@app.validate( 'users', 'register' )
def routeRegister():
  user = request.json
  return jsonify( user )

if __name__ == '__main__':
  app.run( port = 8080 )

Schema File

schemas/users.json

{
  "register": {
    "type": "object",
    "properties": {
      "name": { "type": "string", "minLength": 2, "maxLength": 100 },
      "email": { "type": "string", "format": "email" },
      "password": { "type": "string", "minLength": 8, "maxLength": 32 }
    },
    "required": [ "name", "email", "password" ]
  }
}

Run Server

python main.py

POST Data to Server

POST /register HTTP/1.0
Content-Type: application/json
Content-Length: 76

{
	"name": "fred",
	"email": "fred@foo.com",
	"password": "frediscool"
}

Handling Validation Errors

If the data validates correctly then the server will respond with the POST data as a JSON object.

If the data fails to validate, a jsonschema.ValidationError exception will be raised.

To handle the exception, you could register a Flask errorhandler. For example:

import jsonschema
from flask import Response

@app.errorhandler( jsonschema.ValidationError )
def onValidationError( e ):
  return Response( "There was a validation error: " + str( e ), 400 )

Keywords

FAQs


Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc