Вот сценарий, где мне нужна помощь.сделать несколько вызовов api для отдыха и комбинировать результат с помощью C#
Пользователь вводит ключевое слово и нажмите поиск
Я при условии, что ключевое слово в нескольких API, чтобы получить результаты, используя HTTPClient запрос.
Я получаю ответ на основе ключевого слова поиска из разных API.
Но проблема в том, что я делаю поисковые вызовы один за другим этим аписом. Я хочу сделать что-то, где, когда пользователь нажимает на поиск, он сразу вызывает вызов всех API-интерфейсов, а затем объединяет результаты.
WalmartModel model=new WalmartModel();
using (var client = new HttpClient())
{
client.BaseAddress = new Uri("**URL 1**");
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
//GET Method
HttpResponseMessage response = await client.GetAsync("");
if (response.IsSuccessStatusCode)
{
model = await response.Content.ReadAsAsync<WalmartModel>();
}
else
{
Console.WriteLine("Internal server Error");
}
}
using (var client = new HttpClient())
{
client.BaseAddress = new Uri("**URL 2**");
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
//GET Method
HttpResponseMessage response = await client.GetAsync("");
if (response.IsSuccessStatusCode)
{
model = await response.Content.ReadAsAsync<WalmartModel>();
}
else
{
Console.WriteLine("Internal server Error");
}
}
как только я получу результат, я совмещаю список и возвращаю его, что я не думаю, что это лучшая практика.
Я знаю, что могу использовать многозадачные потоки, но у меня нет практических примеров для подражания. Может ли кто-нибудь предложить лучший подход к этому?
Несколько запросов параллельно и объединить результаты. https://msdn.microsoft.com/en-us/library/hh696703(v=vs.110).aspx – JamesT
По крайней мере, предоставьте некоторый код, как вы это делаете сейчас. – Evk
Это был бы ответный вопрос, если бы вы предоставили некоторый код, чтобы показать, как вы в настоящее время выполняете вызовы API. «многозадачные потоки» не были бы правильным подходом. – spender