我命由我,不由天!


  • 搜索
prometheus docker golang linux kubernetes

字段校验:第三方库protoc-gen-validate的使用

发表于 2021-01-11 | 0 | 阅读次数 164

使用第三方库protoc-gen-validate

  1. Model.proto
import "validate.proto";
message OrderMain{
    int32 order_id=1;
    string order_no=2;
    int32 user_id=3;
    float order_money=4[(validate.rules).float.gt=1];
    google.protobuf.Timestamp order_time=5;
    repeated OrderDatil order_details=6;
}
  1. 编译:
protoc --go_out=plugins=grpc:../service  --go_opt paths=source_relative \
--validate_out=lang=go:../service Model.proto

会生成Model.pb.validate.go

image.png
3. 使用校验:

OrderService.go

func (this *OrderService) NewOrder(ctx context.Context,request *OrderRequest) (*OrderResponse, error){
	fmt.Println(request)
	err := request.OrderMain.Validate()
	if err != nil {
		return &OrderResponse{Status:"error",Message:err.Error()},nil

	}
	return &OrderResponse{Status:"200",Message:"abc"},nil
}
  • 本文作者: Dante
  • 本文链接: https://gaodongfei.com/archives/字段校验第三方库protoc-gen-validate的使用
  • 版权声明: 本博客所有文章除特别声明外,均采用CC BY-NC-SA 3.0 许可协议。转载请注明出处!
gRPC初学
gRPC服务端流
  • 文章目录
  • 站点概览
Dante

Dante

119 日志
5 分类
5 标签
RSS
Creative Commons
0%
© 2023 Dante
由 Halo 强力驱动
|
主题 - NexT.Pisces v5.1.4
沪ICP备2020033702号