diff options
author | CoprDistGit <infra@openeuler.org> | 2023-06-20 06:13:37 +0000 |
---|---|---|
committer | CoprDistGit <infra@openeuler.org> | 2023-06-20 06:13:37 +0000 |
commit | c91a1d007ba8c8259b9c8a3541428a8276a21640 (patch) | |
tree | 87a665f3e312fd7e6bb33e80c459c91db1506f94 | |
parent | 7ca0f476654726646637346d6730e563c729b3af (diff) |
automatic import of python-flask-jsonschema-validatoropeneuler20.03
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | python-flask-jsonschema-validator.spec | 380 | ||||
-rw-r--r-- | sources | 1 |
3 files changed, 382 insertions, 0 deletions
@@ -0,0 +1 @@ +/flask-jsonschema-validator-0.0.4.tar.gz diff --git a/python-flask-jsonschema-validator.spec b/python-flask-jsonschema-validator.spec new file mode 100644 index 0000000..46e44da --- /dev/null +++ b/python-flask-jsonschema-validator.spec @@ -0,0 +1,380 @@ +%global _empty_manifest_terminate_build 0 +Name: python-flask-jsonschema-validator +Version: 0.0.4 +Release: 1 +Summary: Validate Flask JSON request data with schema files and route decorators +License: MIT +URL: https://gitlab.com/vector.kerr/flask-jsonschema-validator +Source0: https://mirrors.aliyun.com/pypi/web/packages/bd/b0/35f9f26d6efb6171da6236c07e5cbf73b66467c8954e983389d4656cbffa/flask-jsonschema-validator-0.0.4.tar.gz +BuildArch: noarch + +Requires: python3-flask +Requires: python3-jsonschema + +%description +# 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](LICENSE.txt). + + +# Installation + +pip install flask-jsonschema-validator + + +# Sample Usage + +## Python Code + +`main.py` +```python +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` +```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 + +```sh +python main.py +``` + + +## POST Data to Server +```http +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: + +```python +import jsonschema +from flask import Response + +@app.errorhandler( jsonschema.ValidationError ) +def onValidationError( e ): + return Response( "There was a validation error: " + str( e ), 400 ) +``` + + + + +%package -n python3-flask-jsonschema-validator +Summary: Validate Flask JSON request data with schema files and route decorators +Provides: python-flask-jsonschema-validator +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-flask-jsonschema-validator +# 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](LICENSE.txt). + + +# Installation + +pip install flask-jsonschema-validator + + +# Sample Usage + +## Python Code + +`main.py` +```python +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` +```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 + +```sh +python main.py +``` + + +## POST Data to Server +```http +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: + +```python +import jsonschema +from flask import Response + +@app.errorhandler( jsonschema.ValidationError ) +def onValidationError( e ): + return Response( "There was a validation error: " + str( e ), 400 ) +``` + + + + +%package help +Summary: Development documents and examples for flask-jsonschema-validator +Provides: python3-flask-jsonschema-validator-doc +%description help +# 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](LICENSE.txt). + + +# Installation + +pip install flask-jsonschema-validator + + +# Sample Usage + +## Python Code + +`main.py` +```python +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` +```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 + +```sh +python main.py +``` + + +## POST Data to Server +```http +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: + +```python +import jsonschema +from flask import Response + +@app.errorhandler( jsonschema.ValidationError ) +def onValidationError( e ): + return Response( "There was a validation error: " + str( e ), 400 ) +``` + + + + +%prep +%autosetup -n flask-jsonschema-validator-0.0.4 + +%build +%py3_build + +%install +%py3_install +install -d -m755 %{buildroot}/%{_pkgdocdir} +if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi +if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi +if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi +if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi +pushd %{buildroot} +if [ -d usr/lib ]; then + find usr/lib -type f -printf "\"/%h/%f\"\n" >> filelist.lst +fi +if [ -d usr/lib64 ]; then + find usr/lib64 -type f -printf "\"/%h/%f\"\n" >> filelist.lst +fi +if [ -d usr/bin ]; then + find usr/bin -type f -printf "\"/%h/%f\"\n" >> filelist.lst +fi +if [ -d usr/sbin ]; then + find usr/sbin -type f -printf "\"/%h/%f\"\n" >> filelist.lst +fi +touch doclist.lst +if [ -d usr/share/man ]; then + find usr/share/man -type f -printf "\"/%h/%f.gz\"\n" >> doclist.lst +fi +popd +mv %{buildroot}/filelist.lst . +mv %{buildroot}/doclist.lst . + +%files -n python3-flask-jsonschema-validator -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Tue Jun 20 2023 Python_Bot <Python_Bot@openeuler.org> - 0.0.4-1 +- Package Spec generated @@ -0,0 +1 @@ +dee6d099045025a84bf2b2e05934d165 flask-jsonschema-validator-0.0.4.tar.gz |