使用grpc-gateway时遇到的问题记录

grpc官方推荐使用google.protobuf.FieldMask来实现数据的部分字段更新,而在使用过程中出现了如下问题:
  项目中使用了grpc-gateway,那么前端可以直接通过http协议访问后端接口,请求体中数据格式为json
  对于google.protobuf.FieldMask类型的数据,前端之前一直通过如下的方式进行请求,之后项目被其他人接手,某次重新部署代码后,前端请求时就一直报错,报错信息如下所示

# 请求体:
{	
	"update_mask": {
        "paths":["update_object1", "update_object2"]
    }
}

# 错误信息
{
    "code": 3,
    "message": "proto: syntax error (line xx:xx): unexpected token {",
    "details": []
}

  排查后发现,我之前一直使用grpc-gateway包,而现在使用的时grpc-gateway/v2包,包的版本发生了变化;查看源码后发现,在v2版本中,对于google.protobuf.FieldMask类型的数据,请求体应该采用如下格式进行请求:

# v2请求体:
{	
	"update_mask": "updateObject1, updateObject2"
}

  至此问题解决。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值