From 5b4a6c0049f91bf9c04bb1c08ae885ac60039ae2 Mon Sep 17 00:00:00 2001 From: Maurice Markvoort Date: Wed, 28 Feb 2018 09:34:12 +0100 Subject: [PATCH 1/2] add possiblity to change restapliclient options --- Xablu.WebApiClient/IRestApiClient.cs | 5 ++++- Xablu.WebApiClient/RestApiClient.cs | 14 +++++++++++--- Xablu.WebApiClient/RestApiClientOptions.cs | 4 ++-- 3 files changed, 17 insertions(+), 6 deletions(-) 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..47f73aa 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,17 +23,25 @@ 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; + } + + public void ChangeBaseAddress(string newBaseAdress) + { + _restApiClientOptions.ApiBaseAddress = newBaseAdress; + } + private void Initialize() { var apiBaseAddress = _restApiClientOptions.ApiBaseAddress; 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. From 0944d882ba8112d63ecf3c0bd5c06a3b684a9951 Mon Sep 17 00:00:00 2001 From: Maurice Markvoort Date: Wed, 28 Feb 2018 11:09:16 +0100 Subject: [PATCH 2/2] reinit when changing config --- Xablu.WebApiClient/RestApiClient.cs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Xablu.WebApiClient/RestApiClient.cs b/Xablu.WebApiClient/RestApiClient.cs index 47f73aa..ad6448c 100644 --- a/Xablu.WebApiClient/RestApiClient.cs +++ b/Xablu.WebApiClient/RestApiClient.cs @@ -35,11 +35,13 @@ public RestApiClient(RestApiClientOptions options) public void ConfigureOptions(RestApiClientOptions options) { _restApiClientOptions = options; + Initialize(); } public void ChangeBaseAddress(string newBaseAdress) { _restApiClientOptions.ApiBaseAddress = newBaseAdress; + Initialize(); } private void Initialize()