4

次のようなネストされた検索パラメーターの JS オブジェクト リテラル構造があります。

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

WHEREその構造に対する SQL クエリの同等の句は次のようになります。

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

GETこの構造により、ネストされた検索基準を適切にモデル化できますが、このような高度なデータ構造を HTTPリクエスト経由で渡すためのベスト プラクティスが何であるかはわかりません。リクエストの場合は、POSTJSON エンコードしてメッセージ本文に適切なContent-Type. ただし、これは検索であるため、意味的には HTTP を使用する必要がありますGET。私が見ているように、私のオプションは次のとおりです。

  1. 構造を JSON/URL エンコードし、それを 1 つの URL クエリ パラメータとして渡し、サーバーにデコードさせます。
  2. この構造を単純なキーと値のペアに変換する (どういうわけか) 厄介な DSL を思いつく
  3. URL クエリ パラメータに組み込みの配列構文を使用する (例: ?search[0][op]=and&search[0][cri][0][f]=foo&...)

これらよりも優れたオプションはありますか?そうでない場合、3 つの中でどれが「最高」ですか?

4

0 に答える 0