polarismesh / polaris

Service Discovery and Governance Platform for Microservice and Distributed Architecture
https://polarismesh.cn
Other
2.41k stars 399 forks source link

feat: http实例查询接口支持多个metadata条件查询 #1353

Closed WTIFS closed 6 months ago

WTIFS commented 6 months ago

Please provide issue(s) of this PR: Fixes #

/naming/v1/instances 接口目前只支持查询一组 metadata 条件,我们希望支持可查询多组 metadata 条件,为此进行了如下修改:

  1. 修改 ParseQueryParams 函数,当 query 里的 keysvalues 有多个时,使用逗号将其拼接
  2. 修改 preGetInstances 函数,使用逗号解析 keysvalues 字段,并将其写入 map

To help us figure out who should review this PR, please put an X in all the areas that this PR affects.

Please check any characteristics that apply to this pull request.

polaris-test-bot commented 6 months ago

2024-05-20 16:16:23: =========TEST START========== 2024-05-23 15:06:28: =========TEST START========== 2024-05-23 15:08:36: =========TEST START==========

chuntaojun commented 6 months ago

添加一个单元测试下?

WTIFS commented 6 months ago

添加一个单元测试下?

已添加,看看 ok 嘛

chuntaojun commented 6 months ago

是不是可以在扩展下,比如这些 metadata 是需要 and 才满足,还是 or 匹配模式;以及是否支持反查询,即查询没有这些标签的实例?

WTIFS commented 6 months ago

是不是可以在扩展下,比如这些 metadata 是需要 and 才满足,还是 or 匹配模式;以及是否支持反查询,即查询没有这些标签的实例?

那要改的地方恐怕有点多,metaFilter 现在是一个非常简单的 map[string]string 结构,这个结构目前只能按 and 模式来查询