grpc proto validator.
Project description
plugin of validate request field for python grpc server.
- TODO:
type hint for different field type.(such as only string field can do a string length check.)
setup tool & test case & Makefile. & LICENSE & push to pypi repo
a cli to help protoc with validator.proto.
anymore bugs or improves?
How To
install (TODO: setup.py needed.)
git clone https://github.com/v1c77/py_grpc_validator.git
cd py_grpc_validator
pip install --editable .
copy validator.proto to your project proto path and do protoc.
a example on how to generate the grpc files.
$ python -m grpc_tools.protoc \
--proto_path={/path/to/validator/proto} \
--proto_path={/path/to/your/project/proto} \
--python_out={/path/to/project/src} \
{/path/to/validator/proto}/validator.proto
$ python -m grpc_tools.protoc \
--proto_path={/path/to/validator/proto} \
--proto_path={/path/to/your/project/proto} \
--python_out={/path/to/project/src} \
--grpc_python_out={/path/to/project/src} \
example/proto/hello_bro.proto
change your service code. (just a little.)
to validate all the service handlers:
import six
from grpc_validator.validator import ValidateMetaclass
class YourService(six.with_metaclass(ValidateMetaclass,
YourService_pb2_grpc.YourServiceServer)):
def behaviour1(self, request, context)
...
Also you can select individual service handler to do the field check:
from grpc_validator.validator import validator_wrap
class YourService(YourService_pb2_grpc.YourServiceServer):
def behaviour(self, request, context):
"""request will not be validated."""
...
@validator_wrap
def behaviour2(self, request, context):
...
Notice
Someone has used go-proto-validator before will notice that I almost reuse its proto file which make it easier to co-work with our golang service team.
But please don’t mix these two proto files. !!!THEY ARE NOT IN COMMON USE!!!
Any help or idea is favourably receive. Please just make a issue.
LICENSE
TODO
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for grpc-proto-validator-0.1.dev0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 525c64d828f2acb6c985d7c2b8357d56d1a72d71c3e42058bcc2f85e74546a1b |
|
MD5 | fcc92c359b0d37b334ae3566d0bebc87 |
|
BLAKE2b-256 | 8cd7c7b67c55fefce20cefb3572252650599c75bebe875a40155cdac9f3be113 |
Hashes for grpc_proto_validator-0.1.dev0-py2-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5b4dcd26d70cc414518997e2f0523c7ffd58a341c16ff2c0af9cbea33792fb07 |
|
MD5 | 30c9ba76f8580aa33a443bb676a58ddc |
|
BLAKE2b-256 | 543ad5099101416a2da8cc3615e0ce7480b08f986548ef48ac7f5dbe6e722338 |