2017-09-30 34 views
0

私はいくつかのパラメータが検索のためにエンドポイントに渡されるアプリケーションを持っています。これらのパラメータは動的に生成されるため定義されていません。特定のモデル。任意のクエリパラメータをGETエンドポイントにマップする最良の方法は何ですか?複数のクエリパラメータを.netcore web apiのGETエンドポイントに渡す

[HttpGet] 
public CustomResponse GetResults({something here that will map the parameters?}) 
{ 
    //perhaps a dictionary? a collection of some sort? 
} 

は、それから私は、これらすべてのキーと値を取得し、それを含む何のためのデータベースを検索する必要があると私が言ったように、それは何でもかまいません。

私は何かのように渡すことができますか?

/api/Merchandise/GetResults?sku=30021&cupsize=medium&color=red&location=south& {and all the dynamic fields which could be anything} 

答えて

1

HttpRequestオブジェクトがIQueryCollectionであり、すべての渡されたクエリパラメータを保持しているQuery性質を持っています。言い換えれば

、あなたのアクションメソッドであなたが行うことがあります。

[HttpGet] 
public CustomResponse GetResults() 
{ 
    var queryParams = HttpContext.Request.Query; 

    // directly get by name 
    var value1 = queryParams["parameter_name"]; 
    // or queryParams.TryGetValue() 

    foreach (var parameter in queryParams) 
    { 
     string name = parameter.Key; 
     object value = parameter.Value; 
    } 
} 
0

これは辞書のようなJObjectにマップできます。

は忘れないでください:

using Newtonsoft.Json; 
関連する問題