sanic-validation
Validation for sanic endpoints.
Installation
pip install sanic-validation
Usage example
Body JSON validation
from sanic import Sanic
from sanic.response import json
from sanic_validation import validate_json
app = Sanic()
schema = {'name': {'type': 'string', 'required': True}}
@app.route('/')
@validate_json(schema)
async def _simple_endpoint(request):
return json({'message': 'Hello ' + request.json['name']})
app.run('0.0.0.0')
Query parameters validation
from sanic import Sanic
from sanic.response import json
from sanic_validation import validate_args
app = Sanic()
schema = {'name': {'type': 'string', 'required': True}}
@app.route('/')
@validate_args(schema)
async def _simple_endpoint(request):
return json({'message': 'Hello ' + request.raw_args['name']})
app.run('0.0.0.0')
Schema format
Internally, sanic-validation uses cerberus as a validation provider. Detailed format documentation can be found here.
Example validation success
Request
GET / HTTP/1.1
Accept: application/json, */*
Accept-Encoding: gzip, deflate
Connection: keep-alive
Content-Length: 16
Content-Type: application/json
Host: localhost:8000
User-Agent: HTTPie/0.9.9
{
"name": "John"
}
Response
HTTP/1.1 200 OK
Connection: keep-alive
Content-Length: 24
Content-Type: application/json
Keep-Alive: 5
{
"message": "Hello John"
}
Example validation failure
Request
GET / HTTP/1.1
Accept: */*
Accept-Encoding: gzip, deflate
Connection: keep-alive
Host: localhost:8000
User-Agent: HTTPie/0.9.9
Response
HTTP/1.1 400 Bad Request
Connection: keep-alive
Content-Length: 168
Content-Type: application/json
Keep-Alive: 5
{
"error": {
"invalid": [
{
"constraint": true,
"entry": "name",
"entry_type": "json_data_property",
"rule": "required"
}
],
"message": "Validation failed.",
"type": "validation_failed"
}
}
Building the documentation
Requirements
- Python
- make
- Sphinx:
pip install sphinx
Building
cd docs
make html
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
sanic-validation-0.2.1.tar.gz
(16.8 kB
view details)
File details
Details for the file sanic-validation-0.2.1.tar.gz.
File metadata
- Download URL: sanic-validation-0.2.1.tar.gz
- Upload date:
- Size: 16.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
92ef8965eb6f6c9f2e13f8fb4aaf06ce826ad062b0d7563757943e38acb8d390
|
|
| MD5 |
ea38563f166b5fc9b23fa12c269d691f
|
|
| BLAKE2b-256 |
c80c3b9d7f36a7d4e7a5418e41240dc90224be5a12e9c1b0a88841920c8cbd64
|