チームでAPIを設計する際に、私たちが送信した複雑なクエリパラメータをオブジェクトとして、オブジェクトの配列などにエンコードする必要があります。経路GET /resource/
と私はクエリのパラメータで直接フィルタのセットを適用したい。このフィルタのオブジェクトリテラルの構造は、URLでこれをエンコードGET要求にエンコードされたオブジェクトクエリのパラメータを使用する
filter: {
field1: {
contains: 'value',
notin: ['value2', 'value3']
},
field2: {
greaterThan: 10
}
}
ようになり、そのような内部で使用express.js qs
ノードモジュールとしてクエリ文字列パーサを経由して、バックエンドで安価になります。しかし、1)生成されたURLは非常に読みにくいです。クライアントがAPIに接続したいのであれば、エンコーディングライブラリを使用する必要があります。2)このようなクエリパラメータを使用したことはないと思われます。私は少し力を入れています。私はそれがいかに使い慣れているか、そして本当に安全かどうかはわかりません。
上記の例は、次のようなクエリのparamsをもたらすであろう:
GET /resource/?field1%5Bcontains%5D=value&field1%5Bnotin%5D%5B0%5D=value2&field1%5Bnotin%5D%5B1%5D=value3&field2%5BgreaterThan%5D=10
複雑なオブジェクトは、いくつかの基準やベストプラクティスを持っていることが起こるURLクエリパラメータを送るこの練習をしていますか?