Skip to main content

Validator

This is a request handler validation tool for RESTful API endpoints.

How To Use

from validrequest import validator, ValidationError
from typing import Dict, Any

def request_handler(request, response, next):
    # Note: type and state must be the first rules in that order
    # i.e. type (string,float,integer,number,dict)|state (required,sometimes)
    validation_rules: Dict[str, str] = {
        "q": "string|required|max:100",
        "timestamp": "float|sometimes|min:1|max:13",
        "comment": "string|required|min:10",
        "code": "integer|required",
        "version": "float|sometimes",
        "metadata": "dict|required",
        "timeSince": "number|required"
    }
    request_parameters: Dict[str, Any] = request.body
    try:
        validator(validation_rules, request_parameters)
        return response.status(200).send("Validation successful.")
    except ValidationError as e:
        return next({ "message": e })
    except Exception:
        return next({ "message": "Something else went wrong." })

    # You can also use a decorator (@validate) - see demo.py for an example

Refer to the demo.py file for further implementations.

How to Install

python -m pip install validrequest
python -m pip install git+https://github.com/ableinc/validrequest.git

Important - Migrating from v0.0.3 to v1.0.0

Breaking Changes in Version 1.0.0 - Please carefully review the changes below

  • import library name has changed from "validator" to "validrequest":
    from validrequest import validate, validator, ValidationError
    
  • @validate decorator now accepts 'request' or 'req' as Request argument name
  • parse_level was changed to payload_level for @validate decorator
  • error callback must be named "next" for @validate decorator - it will not accept any other argument
  • error callback will return a string error message with error type - it will no longer return JSON
  • strict declaration has been removed - validation rules will always be checked against required and ignored for sometimes
  • 'number' is now an acceptable type in validation rule - this can be used for fields that may be either integer or float
  • Acceptable types in validation rules:
    • Integer: int | integer | number
    • Float: float | number
    • String: str | string
    • Dictionary: dict | dictionary | object
    • Boolean: bool | boolean

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

validrequest-1.0.0.tar.gz (4.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

validrequest-1.0.0-py3-none-any.whl (8.0 kB view details)

Uploaded Python 3

File details

Details for the file validrequest-1.0.0.tar.gz.

File metadata

  • Download URL: validrequest-1.0.0.tar.gz
  • Upload date:
  • Size: 4.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.3

File hashes

Hashes for validrequest-1.0.0.tar.gz
Algorithm Hash digest
SHA256 cec2efcbee2d1db9012499044e8e20daa2aedbefcfe58c794565a78613e2795b
MD5 80763fb1ebc43f85ae0f2d8b4dd9a9fd
BLAKE2b-256 fd1a228ba25a5d0d4e75e0e25e571e409b9a93b69339660ea1bc9902cf1a6173

See more details on using hashes here.

File details

Details for the file validrequest-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: validrequest-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 8.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.3

File hashes

Hashes for validrequest-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 31aeaecf2656a3feea1d8a03fcf935f418229446eafdfd9eeebdb6967b8cdd7f
MD5 2c4302fe942be788459b7643fd2eac34
BLAKE2b-256 51b6038e4f70c7113c8347f3b7deadd3bd8634f62df9ed7210d9919aa6286058

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 files

0.0.3

2 files

0.0.2

2 files

0.0.1

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page