Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

代理Http请求,变量名自动进行驼峰转换问题 #2725

Open
az2az opened this issue Aug 6, 2024 · 6 comments
Open

代理Http请求,变量名自动进行驼峰转换问题 #2725

az2az opened this issue Aug 6, 2024 · 6 comments

Comments

@az2az
Copy link

az2az commented Aug 6, 2024

Environment

  • Server:
  • Client:
  • Protocol:
  • Registry:

Issue description

当使用3.2.0,直接代理http请求转发到后端的triple协议服务,会出现将变量名自动进行驼峰转换的问题。而直接使用triple协议调用后端的triple协议服务,则不会出现此问题。跟踪了一下源码,发现在下图这里没有设置MarshalOptions。

BD44A5CF-7DA5-4E57-98C0-AF7DF5A11852

请社区考虑增加可配置的选项,或者默认加上如下语句,让两端统一,都不应该进行驼峰转换。

123

Logs

Click me to check logs
Copy logs to here.
@FoghostCn
Copy link
Contributor

怎么复现能描述下吗

@qiubyte
Copy link

qiubyte commented Mar 12, 2025

dubbo 协议也会出现这个问题,
版本
java: dubbo3.3.0,
go:v3.2.0

步骤:

  1. java server仅使用dubbo协议,方法名首字母小写
  2. go client配置client.WithClientProtocolDubbo(),同样方法名,首字母大写
  3. go调用java失败,java端抛异常找不到method
  4. go client切换使用triple协议client.WithClientProtocolTriple(),java端切换protocol=tri,其他不改变,调用又是正常的

@AlexStocks
Copy link
Contributor

Go 语言要求 public func 必须 Upper case 开始

@qiubyte
Copy link

qiubyte commented Mar 17, 2025

Go 语言要求 public func 必须 Upper case 开始

所以在dubbo协议下存在 java 和 go 通信时有不兼容的情况
可能需要添加一些描述定义字段来处理这种情况

@FoghostCn
Copy link
Contributor

Go 语言要求 public func 必须 Upper case 开始

所以在dubbo协议下存在 java 和 go 通信时有不兼容的情况 可能需要添加一些描述定义字段来处理这种情况

dubbo 协议是有tag 可以修改实际请求的方法名的

GetUser  func(ctx context.Context, req int32) (*User, error) `dubbo:"getUser"`

@qiubyte
Copy link

qiubyte commented Mar 17, 2025

Go 语言要求 public func 必须 Upper case 开始

所以在dubbo协议下存在 java 和 go 通信时有不兼容的情况 可能需要添加一些描述定义字段来处理这种情况

dubbo 协议是有tag 可以修改实际请求的方法名的

GetUser func(ctx context.Context, req int32) (*User, error) dubbo:"getUser"

thx,搜到了这个示例,我验证下

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants