私はオプションのパラメータのセットを受け入れるgetメソッドを持っています。web apiのスペル間違ったfromuriパラメータ
public HttpResponseMessage Get([FromUri] Parameter parameter)
---------------------------
public class Parameter
{
public string TransactionStatus { get; set; }
public string AllVersions { get; set; }
public string RunNumber { get; set; }
}
私はAPI /アイテムを使用してAPIを呼んでいる?transactionStatus = 1またはAPI /アイテム?transactionStatus = 1&allVersions =真。私の質問は、私が要求に応じてスペルの間違いをキャッチ/防止する方法です。 api/item?transactionStatus = 1&MISSPELLED = trueが呼び出された場合、「url is not valid」というエラーが発生したとします。ここで
http://stackoverflow.com/a/22423612/1260204を参照してください。クエリ文字列パラメータを繰り返し処理する必要があり、期待されるパラメータセットで定義されていないインクルードパラメータは、コードで例外をスローする必要があります。私はそれに反対することをお勧めします。パラメータがオプションで、スペルが悪い場合でもパラメータが含まれていない場合は、それが存在しないかのように扱います。オプションでないパラメータが含まれていない場合にのみエラーを返すか、フレームワークがそれを処理するようにルートを設定します(デフォルト)。 – Igor
これはパブリックAPIの場合、キャッシングが発生しないようにするために、 '&ts = TIMESTAMP'などを追加するようなライブラリを見てきました。あなたはそのようなことを壊さないように気をつけたいかもしれません。 – dman2306
これは役に立ちます。ありがとうございました。パラメータのスペルが間違っている場合でも、オプションであってもエラーをスローしたい。場面の裏側のスペルが間違っているためにパラメータが無視されるように、ユーザはそれを気づかずに出力を正当なものとして扱います。 – Andrei