2017-11-14 36 views
0

複数のオプションのパラメータとオプションではない2つのパラメータを持つ新しいWeb API GETを開発する必要があります。オプションのパラメーターは、同じ名前に対して複数の値を持つことができます。たとえば、次のパラメータは、1回のAPIコールで複数の値を同時に持つことができます。 State、PaymentType、PaymentSource。同じ名前のパラメータに対して複数の値を持つことができるオプションのパラメータを取るWeb API GET

オプションでないパラメータは、FromDateとToDateです。

オプションのパラメータは、フロントエンドのUIリストボックスからユーザーが選択した値から設定されます。したがって、例えば、状態リストボックスは、選択可能なオプションとしてリストされたすべての状態を有する。したがって、ユーザーが10ステートを選択した場合、APIのオプションのステート・パラメーターは、そのパラメーターの値として10ステートすべてを含む必要があります。他のオプションのパラメータについても同様です。

私はこれをやったことがないので、どうやってやったらいいのか分かりません。私が経験したすべてのAPIは、各パラメータに対して単一の値しか持っていませんでした。私のAPIのこれらのパラメータは、このようにしてどのように作成できますか?彼らはリストでなければなりませんか?

+0

は、なぜあなたは、各リストボックスのための分離パラメータを使用しないでください。このフォーマットである必要がありますトリックを行う必要がありますか? –

+0

各パラメータには、独自の関連するリストボックスがあります。たとえばStateは、StateパラメータのAPIに渡すことができる50の値を持つリストボックスになります。私が持っている質問は、Stateパラメーターに0〜50の可能な値を渡す方法です。 – Jason

+0

List <>を使ってみましたか? –

答えて

0

これは

[Route("api/foo/{State}/{PaymentType}/{PaymentSource}/{FromDate?}/{ToDate?}")] 
public IHttpActionResult Get([FromUri] List<string> State, [FromUri] List<string> PaymentType, [FromUri] List<string> PaymentSource, [FromUri] List<string> FromDate = null, [FromUri] List<string> ToDate = null) 
{ ... } 

クエリ文字列パラメータが

~/api/foo?State[]=value1&State[]=value2&PaymentType[]=... 
関連する問題