GRPC质子验证器

grpc-proto-validator的Python项目详细描述


python grpc服务器验证请求字段插件。

https://travis-ci.com/v1c77/py_grpc_validator.svg?branch=masterhttps://codecov.io/gh/v1c77/py_grpc_validator/branch/master/graph/badge.svg
待办事项:
  • 不同字段类型的类型提示。(例如只有字符串字段可以 字符串长度检查。)
  • 测试用例生成文件。
  • 一个cli来帮助protoc使用validator.proto
  • 还有漏洞还是改进?

如何

  1. 安装
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
  1. 更改您的服务和*\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

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Grid loadmask(true)在gxt中不起作用   java将字符串索引转换为整数   为什么Java泛型适用于基元数组,但不适用于基元数组?   java如何让Azure应用程序服务Tomcat将所有80/443流量转发到运行在同一应用程序服务上的JBoss   具有多个值的java转换映射到树?   java如何设置SQL server连接URL?   java设置了多个相互独立的JFrame   安全性在JAVA中如何使用RSAPrivateKey的密码短语?   java不能使用比Apache Velocity中更大的条件   如何在Java中打印字符串的所有排列   停止Android Studio自动导入java。sql。日期   对象简单计算器程序java   java如何在安卓中使用“&”符号作为字符串?   java Connect,为我的安卓应用程序从REST API发布和获取数据