diff --git a/Xablu.WebApiClient/IRestApiClient.cs b/Xablu.WebApiClient/IRestApiClient.cs index 35eaf2c..d457a8d 100644 --- a/Xablu.WebApiClient/IRestApiClient.cs +++ b/Xablu.WebApiClient/IRestApiClient.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; @@ -49,5 +49,8 @@ Task> DeleteAsync( IList> headers = null, IHttpResponseResolver httpResponseResolver = null, CancellationToken cancellationToken = default(CancellationToken)); + + void ConfigureOptions(RestApiClientOptions options); + void ChangeBaseAddress(string newBaseAdress); } } \ No newline at end of file diff --git a/Xablu.WebApiClient/RestApiClient.cs b/Xablu.WebApiClient/RestApiClient.cs index 8e1347c..ad6448c 100644 --- a/Xablu.WebApiClient/RestApiClient.cs +++ b/Xablu.WebApiClient/RestApiClient.cs @@ -12,7 +12,7 @@ namespace Xablu.WebApiClient public class RestApiClient : IRestApiClient { - private readonly RestApiClientOptions _restApiClientOptions; + private RestApiClientOptions _restApiClientOptions; private bool _isDisposed; private Lazy _explicit; @@ -23,14 +23,24 @@ public class RestApiClient public RestApiClient(string apiBaseAddress) { _restApiClientOptions = new RestApiClientOptions(apiBaseAddress); - Initialize(); } public RestApiClient(RestApiClientOptions options) { _restApiClientOptions = options ?? throw new ArgumentNullException(nameof(options)); + Initialize(); + } + + public void ConfigureOptions(RestApiClientOptions options) + { + _restApiClientOptions = options; + Initialize(); + } + public void ChangeBaseAddress(string newBaseAdress) + { + _restApiClientOptions.ApiBaseAddress = newBaseAdress; Initialize(); } diff --git a/Xablu.WebApiClient/RestApiClientOptions.cs b/Xablu.WebApiClient/RestApiClientOptions.cs index 3354730..1b25de2 100644 --- a/Xablu.WebApiClient/RestApiClientOptions.cs +++ b/Xablu.WebApiClient/RestApiClientOptions.cs @@ -1,4 +1,4 @@ -using Newtonsoft.Json; +using Newtonsoft.Json; using System.Collections.Generic; using Xablu.WebApiClient.Resolvers; using System.Net.Http; @@ -21,7 +21,7 @@ public RestApiClientOptions(string apiBaseAddress) /// An example could be "https://www.xablu.com". The base address will be appended in front of the 'path' value which /// is supplied with every HTTP request. /// - public string ApiBaseAddress { get; } + public string ApiBaseAddress { get; set; } /// /// Gets or sets a delegate which will instantiate an instance of class used to process the HTTP requests.