次のような ApiController があります。
SearchController : ApiController {
public Book Get(int booksn=-1, string author="")
{
/* search for books matching the parameters */
}
}
すべてのパラメータにはデフォルト値があり、空の検索リクエストはすべてを返します。
今私の問題は、リクエストに他のパラメーターが含まれている場合(APIユーザーからのタイプミスなど)、それでもこの関数にルーティングされることです:
GET /search?booksn=3&hello=world
根本的な問題は、パラメーターが間違った型で送信された場合、同じ方法でルーティングされ、メソッドでパラメーター値を取得できないため、エラー応答を送信することさえできないことです:
GET /search?booksn=helloWorld
これを防ぐ方法はありますか?間違った型を防止するか、未定義のパラメーターをすべて防止しますか? (オブジェクトと [FromUri] 属性でも試しましたが、同じ問題があります)
編集:VS 2012 と .NET Framework 4 を使用しています