GRPC质子验证器
grpc-proto-validator的Python项目详细描述
python grpc服务器验证请求字段插件。
- 待办事项:
- 不同字段类型的类型提示。(例如只有字符串字段可以 字符串长度检查。)
- 测试用例生成文件。
- 一个cli来帮助protoc使用validator.proto。
- 还有漏洞还是改进?
如何
- 安装
pip install grpc-proto-validator
2.将validator.proto复制到项目proto路径并执行proto。 cli帮助复制或生成proto.)
The validator.proto is included in this package, you can find it in python site-packages path.
如何生成GRPC文件的示例:
$ 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}\ path/to/your.proto
- 更改您的服务和*\u PB2代码。
为了避免protobuf导入错误,请在生成的 python文件(如hello_bro_pb2.py)。
发件人:
importvalidator_pb2asvalidator__pb2
收件人:
importgrpc_proto_validator.validator_pb2asvalidator__pb2.
然后使用验证程序创建服务:
importsixfromgrpc_validator.validatorimportValidateMetaclassclassYourService(six.with_metaclass(ValidateMetaclass,YourService_pb2_grpc.YourServiceServer)):defbehaviour1(self,request,context)...
此外,您还可以选择单个服务处理程序进行字段检查:
fromgrpc_validator.validatorimportvalidator_wrapclassYourService(YourService_pb2_grpc.YourServiceServer):defbehaviour(self,request,context):"""request will not be validated."""...@validator_wrapdefbehaviour2(self,request,context):...
注意
有人在使用go-proto-validator之前会注意到 我几乎重用了它的原始文件 与我们的高朗服务团队合作。
但请不要把这两个原始文件混在一起。 !!!它们不是常用的!!!
任何帮助或想法都会受到欢迎。请做一张issue。
许可证
MIT。