Есть некий клиент, под капотом у которого HttpClient
public class Client
{
private HttpClient httpClient;
private const string BaseAddress = "https://api.domain.com/";
public Client(string clientId, string password)
{
httpClient = new HttpClient { BaseAddress = new Uri(BaseAddress) };
httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue
(
"Basic", Convert.ToBase64String(Encoding.ASCII.GetBytes(string.Format("{0}:{1}", clientId, password)))
);
}
protected async Task<T> JsonGetAsync<T>(string requestUrl, params object[] values)
{
var response = await httpClient.GetAsync(string.Format(requestUrl, values)).ConfigureAwait(false);
response.EnsureSuccessStatusCode();
var json = await response.Content.ReadAsStringAsync();
return await Task.Run(() => JsonConvert.DeserializeObject<T>(json));
}
//обычная реализация
public List<Sport> GetSports() => JsonGetAsync<SportsResponse>("v2/sports").Result.Sports;
//Task реализация
public Task<SportsResponse> GetSports() => JsonGetAsync<SportsResponse>("v2/sports");
}
Какая реализация метода GetSports будет самой оптимальной с точки зрения производительности?