2016-04-19 7 views
0

Meine Wep API-Methode:Wie erhalten Sie mehrere Rückgabewerte von 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(); 
} 

ich mehrere Objekte aus verschiedenen Tabellen zurückgekehrt. Ich brauche diese Werte von den einzelnen Verfahren in WEP API

+0

Wenn die Objekte sind nicht verwandt, warum wollen Sie sie alle auf einmal zu bekommen? - Aus welchem ​​Grund möchten Sie nicht drei verschiedene Webmethoden haben? – vassilag

+0

Sie können sie als einzelnes Objekt einkapseln und zum Client-Ende zurückkehren. –

+0

Ich muss alle Werte erhalten, ohne separate Web-Methoden zu erstellen, ich will nicht verschiedene Service-Aufruf vom Client erstellen – Dinesh

Antwort

1

Versuchen Sie etwas entlang der Linien der folgenden zu bekommen, ein einziges anonymes Objekt vorbei zurück genug Ihrer Werte enthalten:

[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

ich kann in der Lage alles zu bekommen Objekte durch einzelne WEB-API-Methode.

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>>(); 
} 

Dank

Verwandte Themen