基于JSON查询参数的RESTful API设计

基于JSON查询参数的RESTful API设计,api,rest,api-design,Api,Rest,Api Design,我有这个查询过滤器: { "$find": { "$startsWith": { "username": "john" }, "$minus": { "$find": { "$startsWith": { "firstName" : "No

我有这个查询过滤器:

{
  "$find": {
    "$startsWith": {
      "username": "john"
    },
    "$minus": {
      "$find": {
        "$startsWith": {
           "firstName" : "Not John"
        }
      }
    }
  }
}
这主要是查找以“john”开头的
username
实体,但也查找名为“Not john”的实体

我想问一下,将其表示为纯查询参数的最RESTful的方式是什么? 以下是我的一些想法:

/entities?startsWith[username]="John"&minus[startsWith.firstName]="Not John"
其他运算符包括“$减号”、“$相交”和“$并集”,它们在结构上基本相似,如下所示

下面是另一个非常重要的例子:

{
  "$find": {
    "$startsWith": {
      "firstName": "John"
    },
    "$minus": {
      "$find": {
        "age": {
          "min": 18,
          "max": 40
        }
      }
    }
  }
}
为此,我想说的是:

/entities?startsWith[firstName]="John"&minus[min.age]=18&minus[max.age]=40

这里的问题是,我理解HTTP查询参数并不总是遵循顺序,因此,由于顺序很重要,因此以这种方式设计查询参数将是一个问题

安全和宁静的方式是什么