XFEExtension.NetCore.ServerInteractive
[DLL] Server interaction extension, including user identity verification and querying in conjunction with AutoConfig
关注
0
Fork
0
Star
0
返回提交历史
Modified
XFEExtension.NetCore.ServerInteractive/Implements/CoreService/ServerCoreStandardServiceBase.cs
+1
-1
Modified
XFEExtension.NetCore.ServerInteractive/Implements/Requester/StandardRequestServiceBase.cs
+4
-9
Modified
XFEExtension.NetCore.ServerInteractive/Interfaces/Requester/IStandardRequestService.cs
+4
-4
Modified
XFEExtension.NetCore.ServerInteractive/Utilities/Extensions/XFEClientRequesterBuilderExtensions.cs
+1
-1
Modified
XFEExtension.NetCore.ServerInteractive/Utilities/Requester/Services/ClearLogRequestService.cs
+0
-1
Modified
XFEExtension.NetCore.ServerInteractive/Utilities/Requester/Services/GetLogRequestService.cs
+0
-1
Modified
XFEExtension.NetCore.ServerInteractive/Utilities/Requester/Services/LoginRequestService.cs
+0
-6
Modified
XFEExtension.NetCore.ServerInteractive/Utilities/Requester/Services/ReloginRequestService.cs
+0
-6
Modified
XFEExtension.NetCore.ServerInteractive/Utilities/Requester/XFEClientRequester.cs
+2
-2
Modified
XFEExtension.NetCore.ServerInteractive/Utilities/Requester/XFEClientRequesterBuilder.cs
+2
-31
XFEstudio/XFEExtension.NetCore.ServerInteractive
优化部分代码
ebc7b87
代码差异
10 个文件
+14
-62
@@ -10,7 +10,7 @@ public abstract partial class ServerCoreStandardServiceBase : XFEServerCoreServi
10
10
/// <summary>
11
11
/// 所有入口点路径列表(由增量生成器自动填充)
12
12
/// </summary>
13
public static List<string> EntryPointList { get; } = new();
13
public static List<string> EntryPointList { get; } = [];
14
14
15
15
/// <inheritdoc/>
16
16
public virtual Dictionary<string, Action> SyncEntryPoints { get; } = new();
@@ -8,21 +8,16 @@ namespace XFEExtension.NetCore.ServerInteractive.Implements.Requester;
8
8
/// </summary>
9
9
public abstract class StandardRequestServiceBase : IStandardRequestService
10
10
{
11
/// <summary>
12
/// 此服务对应的路由列表(由派生类定义)
13
/// </summary>
14
public static List<string> RouteList { get; } = new();
15
16
11
/// <inheritdoc/>
17
12
public string Session { get => XFEClientRequester.Session; set => XFEClientRequester.Session = value; }
18
/// <inheritdoc/>
19
public string Execute { get; set; } = string.Empty;
13
/// <inheritdoc />
14
public string Route { get; set; } = string.Empty;
20
15
/// <inheritdoc/>
21
16
public string DeviceInfo { get; set; } = string.Empty;
22
17
/// <inheritdoc/>
23
public string UnescapedResponse { get; set; }
18
public string UnescapedResponse { get; set; } = string.Empty;
24
19
/// <inheritdoc/>
25
public string Response { get; set; }
20
public string Response { get; set; } = string.Empty;
26
21
/// <inheritdoc/>
27
22
public object[] Parameters { get; set; } = [];
28
23
/// <inheritdoc/>
@@ -5,10 +5,6 @@
5
5
/// </summary>
6
6
public interface IStandardRequestService : IRequestServiceBase
7
7
{
8
/// <summary>
9
/// 待请求的方法(如 check_connect)
10
/// </summary>
11
string Execute { get; internal set; }
12
8
/// <summary>
13
9
/// 设备信息
14
10
/// </summary>
@@ -18,6 +14,10 @@ public interface IStandardRequestService : IRequestServiceBase
18
14
/// </summary>
19
15
string Session { get; set; }
20
16
/// <summary>
17
/// 请求路由(不带斜杠开头),如"user/relogin"
18
/// </summary>
19
string Route { get; set; }
20
/// <summary>
21
21
/// 返回结果字符串(转义后)
22
22
/// </summary>
23
23
string UnescapedResponse { get; set; }
@@ -75,7 +75,7 @@ public static class XFEClientRequesterBuilderExtensions
75
75
/// </summary>
76
76
/// <typeparam name="T">登录返回用户接口类型</typeparam>
77
77
/// <returns></returns>
78
public XFEClientRequesterBuilder AddLoginRequest<T>() where T : IUserFaceInfo => xFEClientRequesterBuilder.AddRequest<LoginRequestService<T>>().AddRequest<ReloginRequestService<T>>();
78
public XFEClientRequesterBuilder AddLoginRequest<T>() where T : IUserFaceInfo => xFEClientRequesterBuilder.AddRequest<LoginRequestService<T>>("user/login").AddRequest<ReloginRequestService<T>>("user/relogin");
79
79
80
80
/// <summary>
81
81
/// 使用XFE标准服务器服务请求
@@ -13,7 +13,6 @@ public class ClearLogRequestService : StandardRequestServiceBase
13
13
/// <inheritdoc/>
14
14
public override object PostRequest() => new
15
15
{
16
execute = Execute,
17
16
session = Session,
18
17
deviceInfo = DeviceInfo
19
18
};
@@ -13,7 +13,6 @@ public class GetLogRequestService : StandardRequestServiceBase
13
13
/// <inheritdoc/>
14
14
public override object PostRequest() => new
15
15
{
16
execute = Execute,
17
16
session = Session,
18
17
deviceInfo = DeviceInfo,
19
18
startDateTime = Parameters[0],
@@ -13,11 +13,6 @@ public class LoginRequestService<T> : StandardRequestServiceBase where T : IUser
13
13
{
14
14
private readonly JsonSerializerOptions _jsonSerializerOptions = new();
15
15
16
/// <summary>
17
/// 路由列表
18
/// </summary>
19
public new static List<string> RouteList { get; } = new() { "user/login" };
20
21
16
/// <summary>
22
17
/// 登录请求服务
23
18
/// </summary>
@@ -34,7 +29,6 @@ public class LoginRequestService<T> : StandardRequestServiceBase where T : IUser
34
29
/// <inheritdoc/>
35
30
public override object PostRequest() => new
36
31
{
37
execute = Execute,
38
32
deviceInfo = DeviceInfo,
39
33
account = Parameters[0],
40
34
password = Parameters[1]
@@ -12,11 +12,6 @@ public class ReloginRequestService<T> : StandardRequestServiceBase where T : IUs
12
12
{
13
13
private readonly JsonSerializerOptions _jsonSerializerOptions = new();
14
14
15
/// <summary>
16
/// 路由列表
17
/// </summary>
18
public new static List<string> RouteList { get; } = new() { "user/relogin" };
19
20
15
/// <summary>
21
16
/// 登录校验请求服务
22
17
/// </summary>
@@ -27,7 +22,6 @@ public class ReloginRequestService<T> : StandardRequestServiceBase where T : IUs
27
22
/// <inheritdoc/>
28
23
public override object PostRequest() => new
29
24
{
30
execute = Execute,
31
25
session = Session,
32
26
deviceInfo = DeviceInfo,
33
27
};
@@ -71,7 +71,7 @@ public abstract class XFEClientRequester : IRequesterBase
71
71
{
72
72
var xFEService = xFEServiceFactory();
73
73
xFEService.XFEClientRequester = this;
74
xFEService.Execute = serviceName;
74
xFEService.Route = serviceName;
75
75
xFEService.DeviceInfo = DeviceInfo;
76
76
xFEService.Parameters = parameters;
77
77
var (response, code) = await InteractiveHelper.GetServerResponse(RequestAddress, xFEService.PostRequest(), _jsonSerializerOptions);
@@ -111,7 +111,7 @@ public abstract class XFEClientRequester : IRequesterBase
111
111
foreach (var instance in from key in StandardMultiRequestServiceListDictionary.Keys where key.Contains(serviceName) select StandardMultiRequestServiceListDictionary[key] into factory select factory())
112
112
{
113
113
instance.XFEClientRequester = this;
114
instance.Execute = serviceName;
114
instance.Route = serviceName;
115
115
instance.DeviceInfo = DeviceInfo;
116
116
instance.Parameters = parameters;
117
117
var (response, code) = await InteractiveHelper.GetServerResponse(RequestAddress, instance.PostRequest(), _jsonSerializerOptions);
@@ -46,41 +46,12 @@ public abstract class XFEClientRequesterBuilder : XFEBuilderBase<XFEClientReques
46
46
}
47
47
48
48
/// <summary>
49
/// 添加标准请求器(从RouteList自动获取路由)
50
/// </summary>
51
/// <typeparam name="T">请求服务泛型</typeparam>
52
/// <returns></returns>
53
public XFEClientRequesterBuilder AddRequest<T>() where T : IStandardRequestService, new()
54
{
55
// 从T的静态RouteList属性获取所有路由
56
var routeListProperty = typeof(T).GetProperty("RouteList", System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Static);
57
if (routeListProperty is null)
58
throw new InvalidOperationException($"类型 {typeof(T).Name} 没有静态的 RouteList 属性");
59
60
var routeList = routeListProperty.GetValue(null) as List<string>;
61
if (routeList is null || routeList.Count == 0)
62
throw new InvalidOperationException($"类型 {typeof(T).Name} 的 RouteList 为空");
63
64
// 为每个路由注册服务工厂
65
foreach (var route in routeList)
66
{
67
_standardRequestServiceDictionary.Add(route, () =>
68
{
69
var inst = new T();
70
ApplyParameter(inst);
71
return inst;
72
});
73
}
74
return this;
75
}
76
77
/// <summary>
78
/// 添加标准请求器(手动指定路由,用于向后兼容或特殊场景)
49
/// 添加标准请求器
79
50
/// </summary>
80
51
/// <typeparam name="T">请求服务泛型</typeparam>
81
52
/// <param name="serviceName">请求服务名称</param>
82
53
/// <returns></returns>
83
public XFEClientRequesterBuilder AddRequestWithRoute<T>(string serviceName) where T : IStandardRequestService, new()
54
public XFEClientRequesterBuilder AddRequest<T>(string serviceName) where T : IStandardRequestService, new()
84
55
{
85
56
_standardRequestServiceDictionary.Add(serviceName, () =>
86
57
{