diff --git a/src/CompuMaster.Scopevisio.OpenApi/Client/ApiClient.cs b/src/CompuMaster.Scopevisio.OpenApi/Client/ApiClient.cs
index eb8ab95..fd681e6 100644
--- a/src/CompuMaster.Scopevisio.OpenApi/Client/ApiClient.cs
+++ b/src/CompuMaster.Scopevisio.OpenApi/Client/ApiClient.cs
@@ -53,10 +53,8 @@ internal partial class ApiClient
/// Initializes a new instance of the class
/// with default configuration.
///
- public ApiClient()
- {
- Configuration = CompuMaster.Scopevisio.OpenApi.Client.Configuration.Default;
- RestClient = new RestClient("https://appload.scopevisio.com/rest");
+ public ApiClient() : this("https://appload.scopevisio.com/rest")
+ {
}
///
@@ -67,8 +65,7 @@ public ApiClient()
public ApiClient(Configuration config)
{
Configuration = config ?? CompuMaster.Scopevisio.OpenApi.Client.Configuration.Default;
-
- RestClient = new RestClient(Configuration.BasePath);
+ this.BasePath = Configuration.BasePath;
}
///
@@ -79,8 +76,7 @@ public ApiClient(Configuration config)
public ApiClient(String basePath = "https://appload.scopevisio.com/rest")
{
if (String.IsNullOrEmpty(basePath))
- throw new ArgumentException("basePath cannot be empty");
-
+ throw new ArgumentException("basePath cannot be empty");
Configuration = Client.Configuration.Default;
this.BasePath = basePath;
}
@@ -116,11 +112,10 @@ public RestClient RestClient
{
if (_restClient == null)
{
- var Options = new RestClientOptions(this.BasePath);
- Options.Timeout =new TimeSpan(0,0,0,0, this.Configuration.Timeout);
- Options.UserAgent = this.Configuration.UserAgent;
-
- RestClient = new RestClient(Options);
+ if (this.Configuration.HttpClient != null)
+ RestClient = new RestClient(this.Configuration.HttpClient, this.ConfiguredRestClientOptions());
+ else
+ RestClient = new RestClient(this.ConfiguredRestClientOptions());
}
return _restClient;
}
@@ -130,6 +125,14 @@ public RestClient RestClient
}
}
+ protected virtual RestClientOptions ConfiguredRestClientOptions()
+ {
+ var Options = new RestClientOptions(this.BasePath);
+ Options.Timeout = new TimeSpan(0, 0, 0, 0, this.Configuration.Timeout);
+ Options.UserAgent = this.Configuration.UserAgent;
+ return Options;
+ }
+
// Creates and sets up a RestRequest prior to a call.
private RestRequest PrepareRequest(
String path, RestSharp.Method method, List> queryParams, Object postBody,
diff --git a/src/CompuMaster.Scopevisio.OpenApi/Client/Configuration.cs b/src/CompuMaster.Scopevisio.OpenApi/Client/Configuration.cs
index 6c153de..87fbf2e 100644
--- a/src/CompuMaster.Scopevisio.OpenApi/Client/Configuration.cs
+++ b/src/CompuMaster.Scopevisio.OpenApi/Client/Configuration.cs
@@ -18,10 +18,18 @@
namespace CompuMaster.Scopevisio.OpenApi.Client
{
+ public partial class Configuration
+ {
+ ///
+ /// The http client for creating the RestClient
+ ///
+ public System.Net.Http.HttpClient HttpClient { get; set; }
+ }
+
///
/// Represents a set of configuration settings
///
- public class Configuration : IReadableConfiguration
+ public partial class Configuration : IReadableConfiguration
{
#region Constants
diff --git a/src/CompuMaster.Scopevisio.OpenApi/Client/IReadableConfiguration.cs b/src/CompuMaster.Scopevisio.OpenApi/Client/IReadableConfiguration.cs
index fdb9017..3039406 100644
--- a/src/CompuMaster.Scopevisio.OpenApi/Client/IReadableConfiguration.cs
+++ b/src/CompuMaster.Scopevisio.OpenApi/Client/IReadableConfiguration.cs
@@ -13,10 +13,18 @@
namespace CompuMaster.Scopevisio.OpenApi.Client
{
+ internal partial interface IReadableConfiguration
+ {
+ ///
+ /// The http client for creating the RestClient
+ ///
+ System.Net.Http.HttpClient HttpClient { get; }
+ }
+
///
/// Represents a readable-only configuration contract.
///
- internal interface IReadableConfiguration
+ internal partial interface IReadableConfiguration
{
///
/// Gets the access token.
diff --git a/src/CompuMaster.Scopevisio.OpenApi/CompuMaster.Scopevisio.OpenApi.csproj b/src/CompuMaster.Scopevisio.OpenApi/CompuMaster.Scopevisio.OpenApi.csproj
index a24594b..c28a65b 100644
--- a/src/CompuMaster.Scopevisio.OpenApi/CompuMaster.Scopevisio.OpenApi.csproj
+++ b/src/CompuMaster.Scopevisio.OpenApi/CompuMaster.Scopevisio.OpenApi.csproj
@@ -4,10 +4,10 @@
CompuMaster.Scopevisio.OpenApi
CompuMaster.Scopevisio.OpenApi
netstandard2.0;net6.0;net48
- 2024.11.05.100
+ 2026.01.02.0
Jochen Wezel
CompuMaster GmbH
- 2019-2024 CompuMaster GmbH
+ 2019-2026 CompuMaster GmbH
MIT
Client access library for the OpenScope API https://www.openscope.de/ (REST web API interface provided by Scopevisio AG, https://www.scopevisio.com/), library generated from Swagger/OpenAPI doc at https://appload.scopevisio.com/rest/swagger.json
https://github.com/CompuMasterGmbH/CompuMaster.Scopevisio.OpenApi