title: Passing complex parameters into a GET request
body: <p>I have a <code>[HttpGet]</code> web api method called <code>GetCats()</code> that returns a collection of <code>Cat</code> objects.</p>
  
  <p>I added parameters <code>skip</code> and <code>take</code> to allow pagination.</p>
  
  <p>However the requirements have increased and now there must be the possibility of complex filtering, in the case of a collection of filters in the format <code>"PropertyName", "Value", "Type"</code> eg. <code>"CatName", "Mittens", "EqualTo"</code> and Sort filters in the format <code>"PropertyName", "Direction"</code> e.g. <code>"CatAge", "Descending"</code>.</p>
  
  <p>Skip and Take is also required.</p>
  
  <p>When this filter object is built up it can be quite large and complex. As a result it doesn't <em>seem</em> to be feasible to put it into the QueryString anymore especially if there are multiple filters as you'd need a way to group them together.</p>
  
  <p>I am looking for a solution - I think I could use <code>[HttpPost]</code> and just post the filter but it seems wrong for a HTTP method. I'm not sure if I can somehow encode the object into the querystring and gracefully decode it or not.</p>
  
  <p>Could anyone suggest a fix for this? I suspect it must be a common problem to pass complex parameters into a GET to retrieve a collection of data.</p>