URL查询中的嵌套搜索参数

时间:2013-06-26 18:35:47

标签: json http url search url-parameters

我有嵌套搜索参数的JS对象文字结构,如下所示:

var search = {
    op: 'and',
    cri: [
        {f: 'foo', o: '=', v: 123},
        {
            op: 'or',
            cri: [
                {f: 'bar', o: '<', 456},
                {f: 'baz', o: '>', 789}
            ]
        }
    ]
};

该结构的SQL查询的等效WHERE子句将是:

(foo = 123 AND (bar < 456 OR baz > 789))

这种结构允许我很好地模拟嵌套搜索条件,但我不确定通过HTTP GET请求传递高级数据结构的最佳做法是什么。如果是POST请求,我只需要JSON编码并将其粘贴到具有相应Content-Type的邮件正文中。但是,这是一个搜索,所以在语义上,我应该使用HTTP GET。在我看来,我的选择是:

  1. JSON / URL对结构进行编码,并将其作为一个URL查询参数传递给服务器进行解码
  2. 想出一个非常尴尬的DSL,将这个结构转换为简单的键/值对(不知何故)
  3. 对URL查询参数使用内置数组语法(例如?search[0][op]=and&search[0][cri][0][f]=foo&...
  4. 有没有比这些更好的选择?如果没有,哪三个是“最好的”?

0 个答案:

没有答案