私は[HttpGet]
というWebAPIメソッドGetCats()
を持っていて、Cat
オブジェクトのコレクションを返します。複雑なパラメータをGETリクエストに渡す
ページネーションを許可するために、パラメータskip
とtake
を追加しました。
しかし、要求が増加し、複雑なフィルタリングの可能性があります。たとえば、"PropertyName", "Value", "Type"
という形式のフィルタのコレクションの場合です。 "CatName", "Mittens", "EqualTo"
、フォーマットは"PropertyName", "Direction"
などのフィルタを並べ替えます。 "CatAge", "Descending"
。
Skip and Takeも必要です。
このフィルタオブジェクトを構築すると、かなり大きく複雑になる可能性があります。その結果、はと思われません。なぜなら、複数のフィルタがある場合は、特にそれらをグループ化する方法が必要になるため、QueryStringに配置することが可能です。
私は解決策を探しています - 私は[HttpPost]
を使用してフィルタをポストすることができますが、HTTPメソッドでは間違っているようです。私は何らかの形でオブジェクトをクエリ文字列にエンコードし、それを正常にデコードすることができるかどうかはわかりません。
誰でもこの修正を提案できますか?私は、複雑なパラメータをGETに渡してデータのコレクションを取得するのが一般的な問題でなければならないと考えています。
はい、クエリ文字列に絶対に複雑なオブジェクトを渡すことができます。デフォルトでは、WebAPIはクエリーのオブジェクトを取得し、本文のオブジェクトを取得します。そして、はい、あなたのURLが容量に達すると、いつでも複雑なオブジェクトを投稿できます。 –