2012-04-12 15 views
3

私はRESTサービスを初めて使い、ASP.Net Web APIの例を使って作業しています。 、私は製品のリストを送信し、すべての価格が返されます何かにASP.Net Web APIを使用してキーのリストを送信し、キー/値のリストを返す方法?

[ServiceBehavior(InstanceContextMode = InstanceContextMode.Single)] 
public class ProductsController : ApiController 
{ 
    public IEnumerable<Product> GetAllProducts() 
    { 
     return new List<Product> 
     { 
      new Product() { Id = 1, Name = "Gizmo 1", Price = 1.99M }, 
      new Product() { Id = 2, Name = "Gizmo 2", Price = 2.99M }, 
      new Product() { Id = 3, Name = "Gizmo 3", Price = 3.99M } 
     }; 
    } ... 

コンセプトに、それは次のようになります:

public IEnumerable<Product> GetProducts(string[] ProductNames) 
    { 
     var pList = new List<Product>; 
     foreach (var s in ProductNames) 
     { 
      //Lookup price 
      var LookedupPrice = //get value from a data source 
      pList.Add(new Product() { Id = x, Name = s, Price = LookedUpPrice }); 

     } 
     return pList; 
    } 
を私は何をしたいのメソッドを取得し、この上で拡大しています

アイデアは何ですか?そして、REST呼び出しはどのように見えますか?私はJSONオブジェクトを渡す必要があると思っていましたが、実際はわかりません。クエリ文字列値で

答えて

4

が、あなたは今、次のエンドポイントにGET要求を行うことができ、単一のフィールドのデフォルトルートと

public class ValuesController : ApiController 
{ 
    protected static IList<Product> productList; 
    static ValuesController() 
    { 
     productList = new List<Product>() 
     { 
      new Product() { Id = 1, Name = "Gizmo 1", Price = 1.99M }, 
      new Product() { Id = 2, Name = "Gizmo 2", Price = 2.99M }, 
      new Product() { Id = 3, Name = "Gizmo 3", Price = 3.99M } 
     }; 
    }     
    public IEnumerable<Product> Get(IEnumerable<int> idList) 
    { 
     return productList; 
    } 
} 

で複数の値を関連付けることができ

/API /値/ FilterList?idList = 1 & idList = 2

+0

ありがとう、私はここで何をしているのか分かります。私はそれを試して結果を投稿します。答えに時間を割いていただき、ありがとうございます。 – lonnieB

+0

WebApi RCでは、メソッドのシグネチャのidListパラメータから[FromUri]属性をインクルードする必要があることに注意してください。詳細はこちらをご覧ください:http://stackoverflow.com/questions/10934077/ –

関連する問題