|
|
|
|
using System;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using System.Text;
|
|
|
|
|
using System.Threading.Tasks;
|
|
|
|
|
using TouchSocket.Core;
|
|
|
|
|
using TouchSocket.Http;
|
|
|
|
|
using TouchSocket.Rpc;
|
|
|
|
|
using TouchSocket.Sockets;
|
|
|
|
|
using TouchSocket.WebApi.Swagger;
|
|
|
|
|
|
|
|
|
|
#region << 版 本 注 释 >>
|
|
|
|
|
/*--------------------------------------------------------------------
|
|
|
|
|
* 版权所有 (c) 2024 WenJY 保留所有权利。
|
|
|
|
|
* CLR版本:4.0.30319.42000
|
|
|
|
|
* 机器名称:T14-GEN3-7895
|
|
|
|
|
* 命名空间:SlnMesnac.TouchSocket
|
|
|
|
|
* 唯一标识:4e47989b-9d43-426e-b67a-529de3b1b0e8
|
|
|
|
|
*
|
|
|
|
|
* 创建者:WenJY
|
|
|
|
|
* 电子邮箱:
|
|
|
|
|
* 创建时间:2024-09-04 10:51:29
|
|
|
|
|
* 版本:V1.0.0
|
|
|
|
|
* 描述:
|
|
|
|
|
*
|
|
|
|
|
*--------------------------------------------------------------------
|
|
|
|
|
* 修改人:
|
|
|
|
|
* 时间:
|
|
|
|
|
* 修改说明:
|
|
|
|
|
*
|
|
|
|
|
* 版本:V1.0.0
|
|
|
|
|
*--------------------------------------------------------------------*/
|
|
|
|
|
#endregion << 版 本 注 释 >>
|
|
|
|
|
namespace SlnMesnac.TouchSocket
|
|
|
|
|
{
|
|
|
|
|
public class WebApiServer
|
|
|
|
|
{
|
|
|
|
|
private ApiServer _apiServer;
|
|
|
|
|
|
|
|
|
|
public WebApiServer(ApiServer apiServer)
|
|
|
|
|
{
|
|
|
|
|
_apiServer = apiServer;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void Init()
|
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
var service = new HttpService();
|
|
|
|
|
service.Setup(new TouchSocketConfig()
|
|
|
|
|
.SetListenIPHosts(7789)
|
|
|
|
|
.ConfigureContainer(a =>
|
|
|
|
|
{
|
|
|
|
|
a.AddRpcStore(store =>
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
store.RegisterServer<ApiServer>(_apiServer);//注册服务
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
a.AddCors(corsOption =>
|
|
|
|
|
{
|
|
|
|
|
corsOption.Add("cors", corsBuilder =>
|
|
|
|
|
{
|
|
|
|
|
corsBuilder.AllowAnyMethod()
|
|
|
|
|
.AllowAnyOrigin();
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
a.AddLogger(logger =>
|
|
|
|
|
{
|
|
|
|
|
logger.AddConsoleLogger();
|
|
|
|
|
logger.AddFileLogger();
|
|
|
|
|
});
|
|
|
|
|
})
|
|
|
|
|
.ConfigurePlugins(a =>
|
|
|
|
|
{
|
|
|
|
|
a.UseCheckClear();
|
|
|
|
|
|
|
|
|
|
a.Add<AuthenticationPlugin>();
|
|
|
|
|
|
|
|
|
|
a.UseWebApi()
|
|
|
|
|
.ConfigureConverter(converter =>
|
|
|
|
|
{
|
|
|
|
|
converter.AddJsonSerializerFormatter(new Newtonsoft.Json.JsonSerializerSettings() { Formatting = Newtonsoft.Json.Formatting.None });
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
a.UseSwagger();//使用Swagger页面
|
|
|
|
|
//.UseLaunchBrowser();
|
|
|
|
|
|
|
|
|
|
a.UseDefaultHttpServicePlugin();
|
|
|
|
|
}));
|
|
|
|
|
service.Start();
|
|
|
|
|
|
|
|
|
|
Console.WriteLine("以下连接用于测试webApi");
|
|
|
|
|
Console.WriteLine($"使用:http://127.0.0.1:7789/swagger/index.html");
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
Console.WriteLine(ex.ToString());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//Console.ReadLine();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
internal class AuthenticationPlugin : PluginBase, IHttpPlugin
|
|
|
|
|
{
|
|
|
|
|
public async Task OnHttpRequest(IHttpSocketClient client, HttpContextEventArgs e)
|
|
|
|
|
{
|
|
|
|
|
await e.InvokeNext();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|