GET请求的参数数组

时间:2017-07-26 16:08:24

标签: .net node.js rest api service

示例:我们有以下操作:

GET /employees 

我必须具有允许使用多个名称作为参数进行过滤的功能。 我代表它如下:

GET /employees?empNames=xxx,yyy,zzz

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

如下所示:

GET /employees?empFirstName=xx&empSurname=x

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

我可以通过以下几种方式来表示它:

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:或a或其他内容中使用哪个分隔符? 最简单,最好的方法是什么?

1 个答案:

答案 0 :(得分:0)

好吧,似乎你的需求非常具体,发送带有一堆参数的标准GET请求是不够的。没有理由限制自己使用这种方法。我会考虑a POST request which may be useful in searching(感谢以更友好的方式接受数据)。

然后我会准备一个请求正文

POST /employees/search

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

或甚至更明确地说,根据创建逻辑查询的一些现有规则,mongo notation for example

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