nacos-group / r-nacos

Nacos server re-implemented in Rust.
https://r-nacos.github.io/docs/
Apache License 2.0
807 stars 84 forks source link

与java 版本接口行为不一致 #102

Closed zhwaaaaaa closed 3 months ago

zhwaaaaaa commented 3 months ago

"GET /nacos/v1/ns/instance/list?serviceName=DEFAULT_GROUP%40%40springmvc-nacos-demo&udpPort=&clientIP=&namespaceId=public HTTP/1.0\r\nHost: nacos\r\nUser-Agent: Nacos-Java-Client:v2.10.0\r\nConnection: close\r\n\r\n"

"HTTP/1.0 400 Bad Request\r\ncontent-length: 63\r\ncontent-type: text/plain; charset=utf-8\r\ndate: Tue, 04 Jun 2024 02:45:41 GMT\r\n\r\nQuery deserialize error: cannot parse integer from empty string"

zhwaaaaaa commented 3 months ago

java 版本 不传 udp 端口不会 返回 400 错误

zhwaaaaaa commented 3 months ago

"GET /nacos/v1/ns/instance/list?serviceName=DEFAULT_GROUP%40%40springmvc-nacos-demo&namespaceId=public HTTP/1.0\r\nHost: nacos\r\nUser-Agent: Nacos-Java-Client:v2.10.0\r\nConnection: close\r\n\r\n"

"HTTP/1.0 200 OK\r\ncontent-length: 283\r\ndate: Tue, 04 Jun 2024 03:00:37 GMT\r\n\r\n{\"name\":\"DEFAULT_GROUP@@springmvc-nacos-demo\",\"clusters\":\"\",\"cacheMillis\":10000,\"hosts\":[],\"lastRefTime\":1717470037754,\"checksum\":\"1717470037754\",\"useSpecifiedURL\":false,\"env\":\"\",\"protectThreshold\":null,\"reachLocalSiteCallThreshold\":null,\"dom\":\"springmvc-nacos-demo\",\"metadata\":null}"

================== 这个请求没有返回 content-type: application/json header。

heqingpan commented 3 months ago

你用的是什么版本的客户端sdk ?

这个接口可以不传udpPort参数,但上面传的是空串,空串解析时不能转化成整数。

zhwaaaaaa commented 3 months ago

第三方 SDK。

heqingpan commented 3 months ago

关于响应的content-type,之前认为不影响结果处理,没太注意,后面可以保持一致。

我想确认的是上面的问题是sdk使用过程的问题,还是手动发起请求发现的差异点?

优先保证sdk可以平滑切换。

heqingpan commented 3 months ago

第三方 SDK。

什么语言的什么sdk?我想复现确认一下。

这样调整之后,可以确认是否已经解决。

zhwaaaaaa commented 3 months ago

手动 发的请求。发现跟 java 版本 有点不一致。https://github.com/zhwaaaaaa/nginx-nacos-upstream/blob/master/modules/nacos/ngx_nacos_data.c

zhwaaaaaa commented 3 months ago

这里边 判断了 一下 content-type,才按照 json 的格式去解析。

heqingpan commented 3 months ago

收到,原则上因响应不一致导致的不兼容问题,都会调整为一致。

heqingpan commented 3 months ago

已开发验证完成,会在本周末发一个正式版本。

heqingpan commented 3 months ago

新版本v0.5.12已解决此问题