GET请求的参数数组

例如:我们有以下操作:

GET /employees 

我必须具有允许使用多个名称作为参数进行筛选的function。 我代表它如下所示:

 GET /employees?empNames=xxx,yyy,zzz 

但是,现在我没有一个名为empName的参数,而是我有两个参数empFirstName和empSurname。

其中将如下所示:

 GET /employees?empFirstName=xx&empSurname=x 

但我仍然需要API来接受多个名称(empFirstName和empSurname)filter。

我可以看到几种方式来表示它:

 GET /employees?name=(xx,x),(yy,y),(zz,z) GET /employees?name=xx:x,yy:y,zz:z GET /employees?name=[{empFirstName=xx, empSurname=yy},{empFirstName=yy, empSurname=zz},{empFirstName=aa, empSurname=bb}] 

什么可能是这种过滤最好的宁静表示。

有什么标准你需要在URI中使用分隔符:a,还是其他的? 什么是最简单和最好的方法来做到这一点?

那么,你的需求似乎是非常具体的,发送一个标准的GET请求与一堆参数是不够的。 没有理由限制自己这个方法。 我会考虑一个可能对search有用的POST请求 (感谢以更友好的方式接受数据)。

然后我会准备一个请求体

 POST /employees/search { "conditions": [ { "empFirstName": "xx", "empSurname": "yy" }, { "empFirstName": "yy", "empSurname": "zz" }, ... ] } 

甚至更明确地说,根据一些现有的逻辑查询规则, 例如mongo表示法 :

 { "$or": [ { "empFirstName": "xx", "empSurname": "yy" }, { "empFirstName": "yy", "empSurname": "zz" }, ... ] }