mirror of
https://gitee.com/langsisi_admin/serein-flow
synced 2026-04-21 23:36:35 +08:00
优化了Web Api的使用
This commit is contained in:
@@ -316,8 +316,14 @@ namespace Serein.Library.Web
|
|||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
if (!HandleModels.TryGetValue(httpMethod, out var modules))
|
||||||
var routeValues = GetUrlData(url); // 解析 URL 获取路由参数
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (!modules.TryGetValue(template, out var config))
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
ControllerBase controllerInstance = (ControllerBase)SereinIOC.Instantiate(controllerType);
|
ControllerBase controllerInstance = (ControllerBase)SereinIOC.Instantiate(controllerType);
|
||||||
|
|
||||||
@@ -326,47 +332,25 @@ namespace Serein.Library.Web
|
|||||||
return false; // 未找到控制器实例
|
return false; // 未找到控制器实例
|
||||||
}
|
}
|
||||||
|
|
||||||
|
object invokeResult;
|
||||||
|
var routeValues = GetUrlData(url); // 解析 URL 获取路由参数
|
||||||
controllerInstance.Url = url.AbsolutePath;
|
controllerInstance.Url = url.AbsolutePath;
|
||||||
|
|
||||||
|
|
||||||
if (!HandleModels.TryGetValue(httpMethod, out var modules))
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (!modules.TryGetValue(template,out var config))
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
dynamic invokeResult;
|
|
||||||
switch (httpMethod)
|
switch (httpMethod)
|
||||||
{
|
{
|
||||||
case "GET":
|
case "GET":
|
||||||
invokeResult = config.HandleGet(controllerInstance, routeValues);
|
invokeResult = await config.HandleGet(controllerInstance, routeValues);
|
||||||
break;
|
break;
|
||||||
case "POST":
|
case "POST":
|
||||||
var requestBody = await ReadRequestBodyAsync(request); // 读取请求体内容
|
var requestBody = await ReadRequestBodyAsync(request); // 读取请求体内容
|
||||||
controllerInstance.BobyData = requestBody;
|
controllerInstance.BobyData = requestBody;
|
||||||
var requestJObject = JObject.Parse(requestBody);
|
var requestJObject = JObject.Parse(requestBody);
|
||||||
invokeResult = config.HandlePost(controllerInstance, requestJObject, routeValues);
|
invokeResult = await config.HandlePost(controllerInstance, requestJObject, routeValues);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
invokeResult = null;
|
invokeResult = null;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
object result;
|
Return(response, invokeResult); // 返回结果
|
||||||
try
|
|
||||||
{
|
|
||||||
result = invokeResult.Result;
|
|
||||||
}
|
|
||||||
catch (Exception)
|
|
||||||
{
|
|
||||||
result = invokeResult;
|
|
||||||
}
|
|
||||||
Return(response, result); // 返回结果
|
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -99,8 +99,8 @@
|
|||||||
<Project>{73B272E8-222D-4D08-A030-F1E1DB70B9D1}</Project>
|
<Project>{73B272E8-222D-4D08-A030-F1E1DB70B9D1}</Project>
|
||||||
<Name>Serein.Library.Framework</Name>
|
<Name>Serein.Library.Framework</Name>
|
||||||
</ProjectReference>
|
</ProjectReference>
|
||||||
<ProjectReference Include="..\..\..\DynamicControl\SereinFlow\Library\Serein.Library.csproj">
|
<ProjectReference Include="..\Library\Serein.Library.csproj">
|
||||||
<Project>{9FCE93C2-2278-46F3-96AB-CDAAFF27A55F}</Project>
|
<Project>{5e19d0f2-913a-4d1c-a6f8-1e1227baa0e3}</Project>
|
||||||
<Name>Serein.Library</Name>
|
<Name>Serein.Library</Name>
|
||||||
</ProjectReference>
|
</ProjectReference>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ namespace Net462DllTest
|
|||||||
|
|
||||||
private void FromWorkBenchView_FormClosing(object sender, FormClosingEventArgs e)
|
private void FromWorkBenchView_FormClosing(object sender, FormClosingEventArgs e)
|
||||||
{
|
{
|
||||||
ViewModel.CommandCloseForm?.Execute();
|
ViewModel.CommandCloseForm.Execute();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void button2_Click(object sender, EventArgs e)
|
private void button2_Click(object sender, EventArgs e)
|
||||||
|
|||||||
@@ -133,6 +133,10 @@ namespace Net462DllTest.ViewModel
|
|||||||
{
|
{
|
||||||
viewManagement.TriggerSignal(SelectedSignal, SpcaeNumber);
|
viewManagement.TriggerSignal(SelectedSignal, SpcaeNumber);
|
||||||
});
|
});
|
||||||
|
CommandCloseForm = new RelayCommand((p) =>
|
||||||
|
{
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -82,6 +82,7 @@ namespace Net462DllTest.Web
|
|||||||
});
|
});
|
||||||
context.Env.IOC.Run<WebSocketServer>((socketServer) =>
|
context.Env.IOC.Run<WebSocketServer>((socketServer) =>
|
||||||
{
|
{
|
||||||
|
socketServer.MsgHandleHelper.RemoteModule(this);
|
||||||
socketServer?.Stop(); // 关闭 Web 服务
|
socketServer?.Stop(); // 关闭 Web 服务
|
||||||
});
|
});
|
||||||
MyPlc.Close();
|
MyPlc.Close();
|
||||||
@@ -105,8 +106,6 @@ namespace Net462DllTest.Web
|
|||||||
string ip = "192.168.10.100",
|
string ip = "192.168.10.100",
|
||||||
int port = 102)
|
int port = 102)
|
||||||
{
|
{
|
||||||
MyPlc.Model.Set(PlcVarName.DoorVar, (Int16)1);
|
|
||||||
MyPlc.Model.Get(PlcVarName.DoorVar);
|
|
||||||
if (MyPlc.Client is null)
|
if (MyPlc.Client is null)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
|
|||||||
Reference in New Issue
Block a user