introduce API-VERSION header
This commit is contained in:
@@ -1,6 +1,5 @@
|
|||||||
using Castle.Core.Logging;
|
using Castle.Core.Logging;
|
||||||
using Pilz.Data;
|
using Pilz.Data;
|
||||||
using Pilz.Extensions.Collections;
|
|
||||||
using Pilz.Extensions.Reflection;
|
using Pilz.Extensions.Reflection;
|
||||||
using System.Diagnostics.CodeAnalysis;
|
using System.Diagnostics.CodeAnalysis;
|
||||||
using System.Net;
|
using System.Net;
|
||||||
@@ -34,33 +33,21 @@ public class ApiServer : IApiServer
|
|||||||
public event DataManagerEventHandler? OnResetDataManager;
|
public event DataManagerEventHandler? OnResetDataManager;
|
||||||
|
|
||||||
protected record PrivateParameterInfo(string Name, int Index);
|
protected record PrivateParameterInfo(string Name, int Index);
|
||||||
|
|
||||||
protected record PrivateMessageHandler(string Url, bool UseRegEx, Delegate Handler, PrivateParameterInfo[] Parameters, ApiMessageHandlerAttribute Attribute);
|
protected record PrivateMessageHandler(string Url, bool UseRegEx, Delegate Handler, PrivateParameterInfo[] Parameters, ApiMessageHandlerAttribute Attribute);
|
||||||
|
|
||||||
protected record PrivateApiResult(ApiResult Original, object? ResultContent);
|
protected record PrivateApiResult(ApiResult Original, object? ResultContent);
|
||||||
|
|
||||||
public string ApiUrl { get; }
|
public string ApiUrl { get; }
|
||||||
|
public uint ApiVersion { get; set; } = 1;
|
||||||
public virtual bool EnableAuth { get; set; }
|
public virtual bool EnableAuth { get; set; }
|
||||||
|
|
||||||
public IApiMessageSerializer Serializer { get; set; } = new DefaultApiMessageSerializer();
|
public IApiMessageSerializer Serializer { get; set; } = new DefaultApiMessageSerializer();
|
||||||
|
|
||||||
public ILogger Log { get; set; } = NullLogger.Instance;
|
public ILogger Log { get; set; } = NullLogger.Instance;
|
||||||
|
|
||||||
public bool DebugMode { get; set; }
|
public bool DebugMode { get; set; }
|
||||||
|
|
||||||
public bool AllowMultipleRequests { get; set; }
|
public bool AllowMultipleRequests { get; set; }
|
||||||
|
|
||||||
public int StopDelay { get; set; } = 5000;
|
public int StopDelay { get; set; } = 5000;
|
||||||
|
|
||||||
public bool AutoRestartOnError { get; set; } = true;
|
public bool AutoRestartOnError { get; set; } = true;
|
||||||
|
|
||||||
public int MaxAutoRestartsPerMinute { get; set; } = 10;
|
public int MaxAutoRestartsPerMinute { get; set; } = 10;
|
||||||
|
|
||||||
public int MaxConcurentConnections { get; set; } = 5;
|
public int MaxConcurentConnections { get; set; } = 5;
|
||||||
|
|
||||||
public IDataManager Manager => GetManager();
|
public IDataManager Manager => GetManager();
|
||||||
|
|
||||||
public bool ThreadedDataManager { get; set; }
|
public bool ThreadedDataManager { get; set; }
|
||||||
|
|
||||||
public ApiServer(string apiUrl) : this(apiUrl, null)
|
public ApiServer(string apiUrl) : this(apiUrl, null)
|
||||||
@@ -450,6 +437,10 @@ public class ApiServer : IApiServer
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Set response header
|
||||||
|
Log.Debug("Set response headers");
|
||||||
|
context.Response.AppendHeader("API-VERSION", ApiVersion.ToString());
|
||||||
|
|
||||||
// Set response parameters
|
// Set response parameters
|
||||||
Log.Debug("Set response parameters");
|
Log.Debug("Set response parameters");
|
||||||
context.Response.StatusCode = (int)result.Original.StatusCode;
|
context.Response.StatusCode = (int)result.Original.StatusCode;
|
||||||
|
|||||||
Reference in New Issue
Block a user