Статья
zh
gRPC开发过程中遇到的问题记录
Источник: 张戈博客 ·
最近我在改造手头负责的一个 HTTP Restful API 服务,集成对 gRPC 协议(在鹅厂叫 tRPC,是 gRPC 的本土衍生版本)的支持。由于是从 0 学习这个协议,因此也踩了不少坑,这里用一篇文章来记录下,希望可以帮助到同样从 0 学习 gRPC 的朋友。 列表参数赋值 老的 Rest 接口中,大量用到了列表参数,看了下 pb 协议,给这个参数定义如下: 1 2 3 message Foo { repeated string Bar = 1 ; } 在 Python RPC 客户端调用测试时,按照经验,传参如下: 1 2 req = pb . Foo () req . Bar = [ "a" , "b" ] 结果赋值就报错了: 1 AttributeError: Assignment not allowed to repeated field "Bar" in protocol message object. 经过一番搜索,最终发现 Python 客户端应该如下赋值列表参数: 1 2 3 req = pb . Foo () bar_list = [ "a" , "b" ] req . Bar . extend ( bar_list ) 这样就可以正常赋值了,但是总觉得这个设计太绕了,直接赋值不行么?总体来说,gRPC 还是偏编译型语言的设计的,在 Python 这种解
Похожее
-
学习周刊-总第281期-2026年第38周
Статья · 二丫讲梵
-
学习周刊-总第282期-2026年第39周
Статья · 二丫讲梵
-
学习周刊-总第284期-2026年第41周
Статья · 二丫讲梵
-
学习周刊-总第285期-2026年第42周
Статья · 二丫讲梵
-
学习周刊-总第286期-2026年第43周
Статья · 二丫讲梵
-
学习周刊-总第287期-2026年第44周
Статья · 二丫讲梵