У меня есть несколько библиотек с открытым исходным кодом, которые я написал с нуля, или они внесли свой вклад в использование того же формата для генерации HTTP-запросов в точку входа API. В настоящее время они написаны следующим образом:Рефакторинг HTTP-запроса
private string _apiExtension = $"&appid={_apiKey}";
private string _apiEntryPoint = "http://api.openweathermap.org/data/2.5/";
public static string GenerateWebRequest(string conn)
{
try
{
if (!string.IsNullOrEmpty(conn))
{
using (var webClient = new WebClient())
{
return webClient.DownloadString(conn);
}
}
}
catch (WebException e)
{
Console.WriteLine(e.StackTrace);
}
return string.Empty;
}
Используется для генерации HTTP-запроса и возврата ответа JSON.
Я тогда строить conn
вот так:
string queryByPoint = _apiEntryPoint + $"weather?lat={latitude}&lon={longitude}" + _apiExtension;
, который будет выглядеть примерно так:
http://api.openweathermap.org/data/2.5/weather?lat={latitude}&lon={longitude}&appid={_apiKey}
с _apiKey
и _apiEntryPoint
, являющихся строками, которые инициализируются в конструкторе для библиотеки.
Есть ли лучший способ сделать это? В небольшом масштабе построение строки подключения не является точно налогообложением, но я чувствую, что повторение кода и использование 4 строк кода для создания одного URL-адреса, вероятно, чрезмерно.
Каковы 4 строки кода, которые дублируются? – Aaron