2016-04-19 21 views
0

私のWEP API方法:私は別のテーブルから複数のオブジェクトを返したWep APIから複数の戻り値を取得するにはどうすればよいですか?

[HttpGet] 
      public object getData() 
      { 
       var firstObj = dbContext.Customer(); 
       var secondObj= dbContext.Department(); 
       var thirdObj= dbContext.Email(); 
       return new { firstObj,secondObj,thirdObj }; 
      } 

    /* this is my client side call */ 
    using (var client = new HttpClient()) 
     { 
     client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", CommonHelper.CurrentToken); 
     client.BaseAddress = new Uri(CommonHelper.baseAddress); 
     HttpResponseMessage response = await client.GetAsync("/OPUS/Accounts/getData"); 
    response.EnsureSuccessStatusCode(); 
} 

。私は戻って自分の価値観を十分に含む単一の匿名オブジェクトを渡して、以下の線に沿って何かを試してみてくださいWEP API

+0

オブジェクトが関連していない場合は、なぜあなたは一度にすべてを取得したいですか? - あなたは3つの別々のWebメソッドを持ちたくない理由は何ですか? – vassilag

+0

これらを単一のオブジェクトとしてカプセル化し、クライアント側に戻すことができます。 –

+0

別のWebメソッドを作成せずにすべての値を取得する必要があります。クライアントから別のサービス呼び出しを作成したくない – Dinesh

答えて

1

に単一のメソッドからこれらの値を取得する必要があります:

[HttpGet] 
public HttpResponseMessage getData() 
{ 
    var firstObj = dbContext.Customer(); 
    var secondObj= dbContext.Department(); 
    var thirdObj= dbContext.Email(); 
    return new { firstObj,secondObj,thirdObj }; 
} 

    /* this is my client side call */ 
using (var client = new HttpClient()) 
{ 
     client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", CommonHelper.CurrentToken); 
     client.BaseAddress = new Uri(CommonHelper.baseAddress); 
     HttpResponseMessage response = await client.GetAsync("/OPUS/Accounts/getData"); 
     response.EnsureSuccessStatusCode(); 
} 
0

私はすべて取得することができます単一のWEB APIメソッドを使用してオブジェクトを作成します。

using (var client = new HttpClient()) 
{ 
     client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", CommonHelper.CurrentToken); 
     client.BaseAddress = new Uri(CommonHelper.baseAddress); 
     HttpResponseMessage response = await client.GetAsync("/OPUS/Accounts/getData"); 
     response.EnsureSuccessStatusCode(); 

var Lookups = await response.Content.ReadAsAsync<object>(); 
        JObject _jObject = JObject.Parse(Lookups.ToString()); 

        JArray deptStatus = _jObject["firstObj"] as JArray; 
        DeptTypeLookups = deptStatus .ToObject<ObservableCollection<Department>>(); 

JArray custStatus = _jObject["secondObj"] as JArray; 
        custTypeLookups = custStatus .ToObject<ObservableCollection<CustDetail>>(); 
} 

おかげ

関連する問題