Если вы ищете красивое структурированное построение URL, Flurl (отказ от ответственности: я автор) может быть полезным.Он имеет статический метод Url.Combine
, который, подобно Path.Combine
для файлов, обеспечивает 1 и только 1 символ-разделитель между сегментами:
Url.Combine(_baseUri, relativeUri, id, "accounts")
* * * * * * Основной пакет Flurl очень мали без зависимостей.
Flurl.Http добавляет беглому HTTP, Json.NET (de) сериализацию, функции тестирования и интеллектуальное управление HttpClient
экземплярами.Ваш пример будет выглядеть следующим образом:
private Task<T> GetUriScopedResource<T>(string uri, int id)
{
return _baseUri
.AppendPathSegments(uri, id, "accounts")
.GetJsonAsync<T>();
}
AppendPathSegments
в основном дает вам Url.Combine
в качестве метода свободного расширения с string
.