{ "info": { "author": "Daniel 'Vector' Kerr", "author_email": "vector@vector.id.au", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 2" ], "description": "# Flask JSON Schema Validator\n\nValidate Flask JSON request data with schema files and route decorators.\n\n\n# Author\n\nDaniel 'Vector' Kerr ()\n\n\n# License\n\nRefer to [LICENSE.txt](LICENSE.txt).\n\n\n# Installation\n\npip install flask-jsonschema-validator\n\n\n# Sample Usage\n\n## Python Code\n\n`main.py`\n```python\nfrom flask import Flask, request, jsonify\nfrom flask_jsonschema_validator import JSONSchemaValidator\n\napp = Flask()\nJSONSchemaValidator( app = app, root = \"schemas\" )\n\n# Define a normal flask route, and then apply the `validate` decorator.\n# Look for the `users.json` file, and use the `register` key as the schema source.\n@app.route( '/register', methods = [ 'POST' ] )\n@app.validate( 'users', 'register' )\ndef routeRegister():\n user = request.json\n return jsonify( user )\n\nif __name__ == '__main__':\n app.run( port = 8080 )\n```\n\n\n## Schema File\n\n`schemas/users.json`\n```json\n{\n \"register\": {\n \"type\": \"object\",\n \"properties\": {\n \"name\": { \"type\": \"string\", \"minLength\": 2, \"maxLength\": 100 },\n \"email\": { \"type\": \"string\", \"format\": \"email\" },\n \"password\": { \"type\": \"string\", \"minLength\": 8, \"maxLength\": 32 }\n },\n \"required\": [ \"name\", \"email\", \"password\" ]\n }\n}\n```\n\n\n## Run Server\n\n```sh\npython main.py\n```\n\n\n## POST Data to Server\n```http\nPOST /register HTTP/1.0\nContent-Type: application/json\nContent-Length: 76\n\n{\n\t\"name\": \"fred\",\n\t\"email\": \"fred@foo.com\",\n\t\"password\": \"frediscool\"\n}\n```\n\n\n## Handling Validation Errors\n\nIf the data validates correctly then the server will respond with the POST data as a JSON object.\n\nIf the data fails to validate, a `jsonschema.ValidationError` exception will be raised.\n\nTo handle the exception, you could register a Flask errorhandler. For example:\n\n```python\nimport jsonschema\nfrom flask import Response\n\n@app.errorhandler( jsonschema.ValidationError )\ndef onValidationError( e ):\n return Response( \"There was a validation error: \" + str( e ), 400 )\n```\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://gitlab.com/vector.kerr/flask-jsonschema-validator", "keywords": "flask jsonschema validator validation json schema", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "flask-jsonschema-validator", "package_url": "https://pypi.org/project/flask-jsonschema-validator/", "platform": "", "project_url": "https://pypi.org/project/flask-jsonschema-validator/", "project_urls": { "Homepage": "https://gitlab.com/vector.kerr/flask-jsonschema-validator" }, "release_url": "https://pypi.org/project/flask-jsonschema-validator/0.0.4/", "requires_dist": [ "flask", "jsonschema" ], "requires_python": "", "summary": "Validate Flask JSON request data with schema files and route decorators", "version": "0.0.4" }, "last_serial": 4734640, "releases": { "0.0.3": [ { "comment_text": "", "digests": { "md5": "67b7a4421046b6c51e8ef7a153fb3bee", "sha256": "65195b1929b02e214f735478bae89551d76bf67b65222ab7c0ad1dab027075bc" }, "downloads": -1, "filename": "flask_jsonschema_validator-0.0.3-py2-none-any.whl", "has_sig": false, "md5_digest": "67b7a4421046b6c51e8ef7a153fb3bee", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 3373, "upload_time": "2018-06-16T08:38:04", "url": "https://files.pythonhosted.org/packages/54/27/7d0dd61b23f246d24c97c0a4fb68fd98c3fcf934f751aa261e44f2a26d35/flask_jsonschema_validator-0.0.3-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "869ec825faa895a16f23a2386a67a1f8", "sha256": "b58ad771f406b672ded6468628243387f4e6fbe824791a55cdd7ed49e548d870" }, "downloads": -1, "filename": "flask-jsonschema-validator-0.0.3.tar.gz", "has_sig": false, "md5_digest": "869ec825faa895a16f23a2386a67a1f8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2850, "upload_time": "2018-06-16T08:38:05", "url": "https://files.pythonhosted.org/packages/e3/c2/959343c4b4af7fd958f28c1d1d3aba4c9eb830778db8cc2101ea62c4d730/flask-jsonschema-validator-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "1021bff7ed880ce04b5cdd2f5f702b97", "sha256": "767439d796b36000283be84318dd25fca79dc6562f4acd4c6221ff09d19bc776" }, "downloads": -1, "filename": "flask_jsonschema_validator-0.0.4-py3-none-any.whl", "has_sig": false, "md5_digest": "1021bff7ed880ce04b5cdd2f5f702b97", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5186, "upload_time": "2019-01-24T08:10:45", "url": "https://files.pythonhosted.org/packages/03/04/0dc5605ba099d5984791c5a7faf046285bd27eca0f13b2de20be42869800/flask_jsonschema_validator-0.0.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "dee6d099045025a84bf2b2e05934d165", "sha256": "fe1ee91fa16c6bc3eccf53ec6aa60f19dc0c65501210910adb562179ce66c0d5" }, "downloads": -1, "filename": "flask-jsonschema-validator-0.0.4.tar.gz", "has_sig": false, "md5_digest": "dee6d099045025a84bf2b2e05934d165", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3265, "upload_time": "2019-01-24T08:10:47", "url": "https://files.pythonhosted.org/packages/bd/b0/35f9f26d6efb6171da6236c07e5cbf73b66467c8954e983389d4656cbffa/flask-jsonschema-validator-0.0.4.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "1021bff7ed880ce04b5cdd2f5f702b97", "sha256": "767439d796b36000283be84318dd25fca79dc6562f4acd4c6221ff09d19bc776" }, "downloads": -1, "filename": "flask_jsonschema_validator-0.0.4-py3-none-any.whl", "has_sig": false, "md5_digest": "1021bff7ed880ce04b5cdd2f5f702b97", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5186, "upload_time": "2019-01-24T08:10:45", "url": "https://files.pythonhosted.org/packages/03/04/0dc5605ba099d5984791c5a7faf046285bd27eca0f13b2de20be42869800/flask_jsonschema_validator-0.0.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "dee6d099045025a84bf2b2e05934d165", "sha256": "fe1ee91fa16c6bc3eccf53ec6aa60f19dc0c65501210910adb562179ce66c0d5" }, "downloads": -1, "filename": "flask-jsonschema-validator-0.0.4.tar.gz", "has_sig": false, "md5_digest": "dee6d099045025a84bf2b2e05934d165", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3265, "upload_time": "2019-01-24T08:10:47", "url": "https://files.pythonhosted.org/packages/bd/b0/35f9f26d6efb6171da6236c07e5cbf73b66467c8954e983389d4656cbffa/flask-jsonschema-validator-0.0.4.tar.gz" } ] }